javascript - 如何使用正则表达式检查一对括号条件?

标签 javascript regex

我正在编写一个 java 脚本,我想在其中验证以下格式的数字:

555-555-5555 
(555)-555-5555

为此,我使用以下正则表达式:

/\(?(\d{3}\)?)[- ]?(\d{3})[- ]?(\d{4})/

但是下面的表达式是错误的:

(555 - 555 5555

我想制作这个正则表达式来检查左括号是否存在,然后右括号必须存在,反之亦然。我应该对我的 RE 做哪些改变才能实现我的目标?

最佳答案

由于大括号是可选的 ? - 出现零次或一次,正则表达式允许使用 ( 和/或 ) 大括号。正则表达式中的 OR 条件可用于匹配三个数字或括号中的三个数字。

^(\(\d{3}\)|\d{3})[- ]?(\d{3})[- ]?(\d{4})$

Demo

(\(\d{3}\)|\d{3})
^               ^ : Group
 ^^     ^^        : Matches ( & ) respectively
          ^       : OR condition in regex
   ^^^^^   ^^^^^  : Match three digits

input:valid {
  color: green;
}
input:invalid {
  color: red;
  font-weight: bold;
}
<input pattern="(\(\d{3}\)|\d{3})[- ]?(\d{3})[- ]?(\d{4})" />

关于javascript - 如何使用正则表达式检查一对括号条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39991011/

相关文章:

javascript - 如何使用从索引文件导入的命名空间动态调用模块?

c# - 自动为文本框中的每一行编号

c# - 尝试理解 .NET 正则表达式

python - 用于提取关注者计数的正则表达式模式

Java String.replace 不工作

javascript - 在 Meteor 的 Collection 中定义值数组

javascript - 根据选择的单选按钮更改按钮链接

java - 使用 Java 从 javascript 链接获取 html 更改

javascript - React Native 中的 `fetch` 未从 URL 返回预期数据

c# - 仅删除 XXX,因为它前面没有其他单词