我正在为阿联酋号码建立一个正则表达式。我设法运行了一些案例,但有些案例表明它没有验证所有案例。
这是我想出的。
要验证以:00971或+971开头的数字,表达式正常。
/^((\+971|00971){1}(2|3|4|6|7|9|50|51|52|55|56){1}([0-9]{7}))$/
e.g。 00971551234567
现在要验证从00971
或+971
开始的数字,我将上面的表达式与上面的内容合并:
/^((050|051|052|055|056){1}([0-9]{7}))$/
e.g。 0551234567
以下表达式无法验证电话号码,如041234567
/^((02|03|04|06|07|09){1}([0-9]{7}))$/
我尝试将所有表达式组合在一个表达式中,但它不起作用,然后我意识到只有上面的表达式没有工作。
[Country][area][7 digit number]
Pattern: +971 55 1234567
表达式应该接受如下数字:
00971551234567
+971551234567
+97141234567
0551234567
041234567
如何让我的正则表达式工作?
答案 0 :(得分:4)
好像你想要这样的东西,
^(?:\+971|00971|0)?(?:50|51|52|55|56|2|3|4|6|7|9)\d{7}$
> /^(?:\+971|00971|0)(?:2|3|4|6|7|9|50|51|52|55|56)[0-9]{7}$/.test("041234567")
true
> /^(?:\+971|00971|0)(?:2|3|4|6|7|9|50|51|52|55|56)[0-9]{7}$/.test("00971551234567")
true
> /^(?:\+971|00971|0)(?:2|3|4|6|7|9|50|51|52|55|56)[0-9]{7}$/.test("009715512345671")
false
> "041234567".match(/^(?:\+971|00971|0)?(?:50|51|52|55|56|2|3|4|6|7|9)\d{7}$/m);
[ '041234567',
index: 0,
input: '041234567' ]
答案 1 :(得分:4)