我正在尝试验证西班牙语电话号码。我声明了一个正则表达式:
$telefono_regex = '/^(6|7|8|9)[0-9]{8}$/';
我检查号码:
if (!preg_match($telefono_regex, $telefono)){
array_push($errores, 'telefono');
}
为什么这总是返回false?我已检入https://regex101.com/并找到匹配相同的数字。
答案 0 :(得分:0)
你问题中的正则表达式以及regex101.com的第一次尝试是不同的。
假设您想要每隔三位数检查带有可选短划线或空格的数字(如第一次尝试使用regex101.com),您可以尝试:
$telefono_regex = '/^[6-9]{3}(?:[ -]?[0-9]{3}){2}$/';
^[6-9]{3}
:6到9位的三位数(?:[ -]?[0-9]{3})
:非捕获组匹配零个或一个空格或破折号([ -]?
)后跟三个数字([0-9]{3}
){2}
:匹配2次非捕获组您可以查看here。
答案 1 :(得分:0)