我正在尝试验证遵循下一个模式的电话号码
01\d{9}
2\d{7}
但是用户可以输入多个以空格或一个输入字段分隔的数字 所以我想出了正则表达式
/(?:(?:01\d{9}$)|(?:2\d{7}$) ){1,}
A Test Sample
"01226113130 26322612 24586154 01004598654"
My Expression与此示例不匹配,有什么帮助吗?
解决方案 对于其他人如果他们在问题上失败了,你可以试试Jerry Solution或者这个
(?:(?:(?:01\d{9}(?:[\- \,])*)|(?:2\d{7}[\- \,]*))){1,}
答案 0 :(得分:2)
试试这个:
^(?:(?:01\d{9}|2\d{7}) ){1,}(?:01\d{9}|2\d{7})$
你当前的正则表达式为(?:01\d{9}$)|(?:2\d{7}$)
,其中$
强迫它“过早地结束”比赛,所以删除这是第一件事。然后(?:01\d{9})|(?:2\d{7})
可以重写为(?:01\d{9}|2\d{7})
。我为字符串的开头添加了^
。
之后,此正则表达式只会验证以空格结尾的字符串,因此最后添加另一个(?:01\d{9}|2\d{7})
,最后以$
结束。
哦,也好,最好将{1,}
转换为*
,如下所示:
^(?:(?:01\d{9}|2\d{7}) )*(?:01\d{9}|2\d{7})$