2011-02-01 161 views
1

我有一個字符串包含字母數字字符。 如果字符串只包含0-9,-,+NA(只有當NA不包含其他字符時才應該驗證NA,並且如果該字符串包含任何其他字符,則應回顯爲假),該腳本應該返回(回顯)「true」與「NA」),如果字符串包含除指定字符以外的任何其他字符,腳本應該回顯「false」。我如何使這可能?只驗證字符串php中的選定字符(電話號碼驗證)

在此先感謝.. :)

blasteralfred

回答

3
if(preg_match('/^(NA|[0-9+-]+)$/',$str)) { 
     echo "true\n"; 
} else { 
     echo "false\n"; 
} 
0

它使用正則表達式很簡單:

$regExp = '/^(?:[0-9+-]+|NA)$/i'; 
echo preg_match($regExp, $string) ? 'true' : 'false'; 

但是:

  • 你確定只是想確保字符串連續ains 0-9-+?這將使下面的有效數字:
    • -9 + 9291 ---
    • + 2039-291919 ++ 0203-19293
  • 如果你只想匹配NA而不是nANana,在模式結束時刪除i
+0

不起作用。你需要將[0-9 + - ] + | na`分組 – codaddict 2011-02-01 08:44:43

0
$check1 = preg_match('/^[0-9]{1,}$/', $string); 
$check2 = preg_match('/^NA$/', $string);