Php preg_match()+;0-1x和数字
我正在尝试为电话号码制作regexp。分别。对于此输入:Php preg_match()+;0-1x和数字,php,regex,preg-match,Php,Regex,Preg Match,我正在尝试为电话号码制作regexp。分别。对于此输入: +420123456 -> valid 123456 -> valid 各自的I-want regexp,其中可以是1位或0位+折叠的1位或n位数字 function isTelephoneNumber($telephone) { preg_match("~^[+]{0,1}[0-9]+$~", $telephone,$match); return (count($match)>0) ? true:fa
+420123456 -> valid
123456 -> valid
各自的I-want regexp,其中可以是1位或0位+折叠的1位或n位数字
function isTelephoneNumber($telephone) {
preg_match("~^[+]{0,1}[0-9]+$~", $telephone,$match);
return (count($match)>0) ? true:false;
}
也试过
"~^\+{0,1}[0-9]+$~"
"~^[+]?[0-9]+$~"
"~^\+?[0-9]+$~"
但是+字符有问题。您的
+
没有转义。这一个应该做这项工作:
preg_match("/^\+?\d+$/", $telephone,$match);
\+?
=>零或一+
\d+
=>一个或多个数字您的正则表达式工作正常。事实上,您的所有尝试在我看来都很正常(尽管我个人更喜欢“(^\+?\d+$)”
)@NiettheDarkAbsol为什么是捕获组?@AvinashRaj它不是捕获组。我使用括号作为分隔符有两个原因:1。“仅仅因为它是一个分隔符”,不需要逃避任何事情。曾经2.它提醒我,结果中的[0]
是整个匹配。这不是您的正则表达式,可能是另一个问题?