我正在制作一个电话号码验证器,所有号码都应以168
开头,然后是9位123456789
。总的来说,电话号码应该只有12位数。
我试过这个
$phoneNumber = '168921500789';
if( preg_match( "/^\168[0-9]{9}$/", $phoneNumber ) ){
echo "Valid number";
} else {
echo "Invalid number";
}
当我运行脚本时,该数字无效。如何让脚本只取12个必须以168开头的数字?
答案 0 :(得分:7)
你的RegEx错了,1
之前有一个无用的反斜杠。正确的:
/^168[0-9]{9}$/
完整代码:
$phoneNumber = '168921500789';
if( preg_match( "/^168[0-9]{9}$/", $phoneNumber ) ){
echo "Valid number";
} else {
echo "Invalid number";
}
答案 1 :(得分:3)
你必须删除1斜杠:
$phoneNumber = '168921500789';
if( preg_match( "/^168[0-9]{9}$/", $phoneNumber ) ){
echo "Valid number";
} else {
echo "Invalid number";
}
答案 2 :(得分:1)
我们像这样使用,引用了这个link
public function validatePhoneNumber($number){
$formats = array(
'###-###-####', '####-###-###',
'(###) ###-###','####-####-####',
'##-###-####-####','####-####','###-###-###',
'#####-###-###', '##########', '#########',
'# ### #####', '#-### #####'
);
$format = trim(preg_replace('/[0-9]/', '#', $number));
return (in_array($format, $formats)) ? true : false;
}