【问题标题】:regex for USA phone number format美国电话号码格式的正则表达式
【发布时间】:2020-06-26 10:38:56
【问题描述】:

我正在使用1000hz 进行验证。 对于 +1(999) 999-999 电话号码,我在模式中使用此正则表达式

^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$

但它不起作用。

【问题讨论】:

  • 这个正则表达式只接受+(999) 999-999
  • ... 还要注意,需要以一种可以被 JavaScript 的 RegExp 函数/构造函数使用的方式提供模式字符串。因此,某些正则表达式特定字符可能需要另外转义。

标签: javascript regex validation


【解决方案1】:

匹配可选的+后需要匹配一个数字

^[+]*\d[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s./0-9]*$

Regex demo

或者更精确的版本::

^[+]?\d(?:\(\d{3}\)|[0-9]{3}) \d{3}-\d{3}$

【讨论】:

  • 我认为,OP 需要将模式作为字符串值提供给 pattern 属性。因此,每个反斜杠都需要额外的转义。然后,您的字符串化正则表达式将如下所示...'^[+]?\\d(?:\\(\\d{3}\\)|[0-9]{3}) \\d{3}-\\d{3}$'.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 2018-01-23
  • 1970-01-01
  • 2015-11-22
  • 2017-05-23
  • 1970-01-01
相关资源
最近更新 更多