我需要验证字符串是否遵循以下规则:
本质上是澳大利亚的固定电话(带区号),免费电话和13个号码。
理想情况下,正则表达式应尽可能与实现无关。
有效输入示例:
PS。我已经检查了至少5个其他答案,并搜索了该问题的多个变体,但无济于事。
我最近的是:
^(?=\d{10}$)(02|03|04|07|08|13|18)\d+
...但是,这不考虑空格,也不接受以13开头的6位数字。
请注意,从理论上讲,可以接受以下内容:
这是指第一对数字之间可能有一个空格(看起来很糟)。
以下是应该失败的随机数示例:
答案 0 :(得分:2)
您可以交替为13
设置一个单独的模式:
^(?:(?=(?:\s*\d\s*){10}$)(?:0\s*[2378]|1\s*[38])|(?=(?:\s*\d\s*){6}$)1\s*3).*