Php 如何验证此格式的字符串:p[1个或多个数字]?
我想验证以下形式的字符串:Php 如何验证此格式的字符串:p[1个或多个数字]?,php,regex,string,Php,Regex,String,我想验证以下形式的字符串: $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 =
$string = 'p123455...
- 有效:p1、p22、p54342534535
- 无效:p、pp45、p543p、4p5232、q34
$valid = true;
if($string[0] != 'p')
$valid = false;
$string = substr($string, 1);
if(!is_numeric($string)
$valid = flase;
if($valid)
echo 'string is valid.';
但是有没有一种更短更快的方法呢?您可以使用一个简单的正则表达式一次性进行验证:
if(preg_match("/^p\d+$/", $string)){
//valid
} else {
//not valid
}
正则表达式解释:
- ^字符串开头的锚定
- pp
- \d匹配所有数字(
)0-9
- +量词:匹配1次或多次
- $字符串末尾的锚定
)
只是一个输入错误。
$string = "p12345678";
if(preg_match('/^p[0-9]+$/',$string)) {
echo "Valid";
} else {
echo "Invalid";
}