gpt4 book ai didi

javascript - RegExp - 如何检查字符串中的两个括号

转载 作者:行者123 更新时间:2023-11-30 14:47:13 25 4
gpt4 key购买 nike

我想知道如果有两个括号(开始和结束),我怎样才能匹配文本。

目前,我的 RegExp 是:^1?\s?\(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4 }$.

它检查美国有效号码,但是 \(?\)? 有所不同。如果有 0 个或 2 个,它应该匹配文本。


一些测试:

1 555)555-5555 - 错误

555)-555-5555 -

(555-555-5555 - 错误

现在,它们都返回相同的结果 - true


这是它的链接: https://regexr.com/3kjei (^ 是因为我只需要选择一个没有换行符的字符串,请从中删除另外 2 个字符串,以便您可以看到它返回 true。此链接中的所有字符串都应返回 true,只需检查一下,以便文本编辑器中只有一个字符串)。

谢谢

最佳答案

你可以使用

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

参见 regex demo .

请注意,正则表达式中的 ^1?\s? 允许在开头使用一个空格,这就是为什么我建议 ^(?:1\s?)? - 以 1 开头的可选序列,可选地后跟空格。

\(?\d{3}\)? 部分替换为 (?:\(\d{3}\)|\d{3})-一个non-capturing group匹配 (+3 digits+) 或 3 位数字(因此,无法匹配 (123 or 123)`)。

详情

  • ^ - 字符串的开始
  • (?:1\s?)? - 1 出现 1 次或 0 次,可选地后跟 1 个空白字符
  • (?:\(\d{3}\)|\d{3}) - (, 3 digits, ) > 或仅 3 位数字
  • [-\s]? - 可选的 - 或空格
  • \d{3} - 3 位数字
  • [-\s]?- 可选的 - 或空格
  • \d{4} - 4 位数字
  • $ - 字符串结尾。

关于javascript - RegExp - 如何检查字符串中的两个括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48720737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com