我一直试图解决PHP正则表达式问题一段时间,但我还是不能完成它。我需要编写一个匹配7到12位(0..9)的正则表达式,并且可以选择单个连字符或相邻数字之间的单个空格。这就是我到目前为止......
$match1 = preg_match('/^\d[0-9\-\s]{5,10}\d$/', $number);
$match2 = preg_match('/(-\s|\s-|--|\s\s)/', $number);
正如你所看到的,我必须使用两种不同的检查,但对我来说仍然不够,因为我可以输入这个字符串:“1-2-3-4-5
”并且它仍然会通过,因为总共有9个字符但它应该失败,因为只有5位数。
对此事的任何帮助都会很棒,谢谢!
答案 0 :(得分:2)
怎么样:
/^(\d[-\s]?){6,11}\d$/
答案 1 :(得分:2)
试试这个正则表达式:
/^\d(?:[-\s]?\d){6,11}$/
这允许七到十二个数字可以用连字符或空白字符分隔。
答案 2 :(得分:1)
^(?:\d[-\s]?){6,11}\d$
答案 3 :(得分:0)
试试这个正则表达式:
\d([-\s]?\d){6,11}