[英]How to identify a string starts and ends with a numeric value in PHP
我需要確定字符串以數字值和7位長開頭和結尾。
讓1000453
或0984567
。 這兩個字符串以數字開頭並以數字結尾。如果任何字符串以任何字符開頭,則說a234567
比它顯示失敗。
請在PHP中提出建議。
提前致謝
您應該能夠為此使用正則表達式:
$count = preg_match ('/^[0-9].{5}[0-9]$/', $value)
這基本上為您提供了每個以數字開頭和結尾的字符串,介於中間的任何五個字符。 $count
是找到的非零匹配項的數目,表示匹配。
如果要使用其他模式,只需調整正則表達式即可。 例如,七個字符,所有數字均為'/^[0-9]{7}$/'
。
請記住,我很老,仍然使用[0-9]
表示數字,因為並非所有的正則表達式引擎都支持\\d
表示法,但是PHP可以使用它(例如'/^\\d{7}$/'
)。
你只想要數字嗎?
然后這應該工作
if (preg_match("/^[0-9]{7}$/", $argv[1]))
{
echo "Ok";
}
如果您還想在字符串中包含其他可能的值,則paxdiablo的正則表達式是正確的。
嘗試這個
<?php
$string = "984f1a3";
if(strlen($string) <= 7){
if(!is_numeric(substr($string, 0, 1)) and !is_numeric(substr($string, strlen($string)-1, strlen($string)))) echo "FAIL";
else echo "Success";
}
else echo "FAIL";
is_numeric()具有中等風險。 字符串“ 1e5”在科學計數法中可能表示10000,但可能並非如此。
您的問題需要一個正則表達式。
/[0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
或更簡單
/[0-9]{7}/
除了上面使用正則表達式的解決方案之外,以下內容也應做。 我還沒有測試!
$result = TRUE;
if (strlen($string) == 7) { $string_arr = str_split($string); if (!(ctype_digit($string_arr[0]] && ctype_digit($string_arr[6]))) $result = FALSE;
} else $result = FALSE;
返回$ result;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.