我想在javascript中为以下电话号码创建一个正则表达式验证检查:
26481 3654562
26481 5689245
26485 3654562
26485 5689245
26461 253425
26461 598756
081 1265984
085 1265984
061 653265
注意:粗体部分必须在那里。之后的数字被接受。以+26461和061开头的数字必须比+26481或+24685和081或085少一个数字。
目前的努力:/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/
答案 0 :(得分:0)
这将匹配任何示例:
var res = str.match(/^[+]?[(]?(?:264|0)(?:81|85|61)[)]?[\s.-]?[0-9]{3}[\s.-]?[0-9]{3,4}$/);
粗体的那些部分通过OR |
强制* 61少一个号码? 那么正则表达式会变得更长一些:
^[+]?[(]?(?:264|0)(?:(81|85)(?=(?:[^0-9]*[0-9]){7}$)|61(?=(?:[^0-9]*[0-9]){6}$))[)]?[\s.-]?[0-9]{3}[\s.-]?[0-9]{3,4}$
之后的积极前瞻将强制执行81,85,61之后的总数。
答案 1 :(得分:0)
这样的东西?
^(\+26461(\d{6})|\+2648(\d{8})|08(1|5)(\d{7})|061(\d{6}))$
+26461(\ d {6})第一组26461
+2648(\ d {8}第二组2648
08(1 | 5)(\ d {7})第3组为081或085
061(\ d {6})最后一组为061