我有一个包含字母数字字符的字符串。
如果字符串仅包含0-9
,-
,+
或单词NA
,则脚本应返回(echo)“true”(仅当NA包含时才应验证NA)没有其他字符,如果字符串包含任何其他字符以及“NA”,则应该回显false,如果字符串包含除指定字符以外的任何其他字符,则脚本应回显“false”。如何使这成为可能?
提前致谢.. :))
blasteralfred
答案 0 :(得分:3)
if(preg_match('/^(NA|[0-9+-]+)$/',$str)) {
echo "true\n";
} else {
echo "false\n";
}
答案 1 :(得分:0)
使用正则表达式非常简单:
$regExp = '/^(?:[0-9+-]+|NA)$/i';
echo preg_match($regExp, $string) ? 'true' : 'false';
然而:
0-9
,-
和+
吗?这将产生以下有效数字:
NA
而不是nA
,Na
和na
,请删除模式末尾的i
。答案 2 :(得分:0)
$check1 = preg_match('/^[0-9]{1,}$/', $string);
$check2 = preg_match('/^NA$/', $string);