1

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

我想将其更改为接受一个开始+,然后是[0-9] . - , ( ).

4

4 回答 4

5

既然你想从 开始+,你需要+通过转义它来告诉引擎从它开始,因为它有另一个含义,

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

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

于 2013-08-04T19:49:41.973 回答
4

这很容易。不要忘记转义“+”。我假设“+”是可选的,因此使用?量词。

/^\+?[0-9(),.-]+$/
于 2013-08-04T19:51:21.357 回答
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
于 2013-08-04T20:01:31.917 回答
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

等等。

于 2020-01-14T14:03:21.800 回答