我想验证这些形式的字符串:
$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
}
正则解释:
- ^ 字符串开头的 anchor
- p 文字 p
- \d 匹配所有数字 (
0-9
)- + 量词:匹配1次或多次
- $ 字符串结尾的 anchor