我想验证这些形式的字符串:
$string = 'p123455...
有效期:p1,p22,p54342534535
无效:p,pp45,p543p,4p5232,q34
(第一个字符必须是'p',其他字符必须是1个或更多个数字)
我的尝试:
$valid = true; if($string[0] != 'p') $valid = false; $string = substr($string, 1); if(!is_numeric($string) $valid = flase; if($valid) echo 'string is valid.';
但是有更短更快的方式吗?
您可以使用简单的正则表达式preg_match()
一次性进行验证:
if(preg_match("/^p\d+$/", $string)){ //valid } else { //not valid }
正则表达式解释:
^锚点为字符串的开头
p literal p
\ d匹配所有数字(0-9
)
+量词:匹配1次或更多次
$ anchor为字符串的结尾