正则表达式接受电话号码+

时间:2013-08-04 19:47:40

标签: regex

我正在以具有此正则表达式/^[\d\s ().-]+$/的电话号码的形式实施验证程序功能。

我想将其更改为接受开始+,然后[0-9] . - , ( {{的所有组合1}}。

感谢您提供意见。

4 个答案:

答案 0 :(得分:5)

因为你想从+开始,你需要通过转义它来告诉引擎以+开头,因为它有其他含义,

/^\+[\d\s ().-]+$/

答案只是简单回答你的问题,但它没有给你正确的结果,因为它会与+...,..()匹配,我可以修改这个,如果你可以明确告诉我们你想要的可接受的模式,例如639151234567

答案 1 :(得分:4)

这很简单。别忘了逃避“+”。我假设“+”是可选的,因此使用?量词。

/^\+?[0-9(),.-]+$/

答案 2 :(得分:0)

以下正则表达式可以匹配任何类型的数字,请记住,我假设+是可选的。 但它不处理数字计算

^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$

以下是一些您可以匹配的有效数字:

+91293227214
+3 313 205 55100
99565433
011 (103) 132-5221
+1203.458.9102
+134-56287959
(211)123-4567
111-123-4567

答案 3 :(得分:0)

这是我能想到的最好的。我合并了其他答案中给出的许多正则表达式。

/^[+]?(1\-|1\s|1|\d{3}\-|\d{3}\s|\d{2}\-|\d{2}\s|)?((\(\d{3}\))|\d{3})(\-|\s)?(\d{3}) 
(\-|\s)?(\d{4})$/g

这应该支持所有组合

  1. (541)754-3010
  2. + 1-541-754-3010
  3. 1-541-754-3010
  4. 001-541-754-3010
  5. 191 541 754 3010
  6. +91 541 754 3010

以此类推。