【问题标题】:Regex mandatory vs optional [duplicate]正则表达式强制与可选[重复]
【发布时间】:2017-04-01 18:27:18
【问题描述】:

我有以下正则表达式:

/[0-9\s-.]{8,10}/

我的目的是检测用户是否在描述区域输入任何可能是电话号码(澳大利亚)的内容,并建议他们不要这样做。它可以很好地匹配可能包含空格点或连字符的数字。

不幸的是,它也会匹配“-----------”之类的内容。如何使匹配所需的数字和其他类型可选?

【问题讨论】:

  • 您能否列出您所定位的电话号码示例?
  • 在“Javascript 正则表达式电话号码”中键入会列出数十个与此非常相似的问题。这些答案不能回答您的问题是否有某些原因?

标签: javascript regex


【解决方案1】:

你几乎得到它。你真正想要的是:

(?:\(\d\d?\)[\s-.])?\d{4}[\s-.]\d{4}

Demo on Regex101

稍微分解一下:

  • (?:\(\d\d?\)[\s-.])? 是最吓人的部分,实际上只是在括号中描述了一个可选的区号,后跟空白字符、破折号或句点中的任何一个。
  • \d{4} 描述了其余数字的两个部分之一。
  • [\s-.] 是一个字符类,它(在这种情况下)将匹配空白字符、破折号或句点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2014-12-20
    • 2018-03-02
    相关资源
    最近更新 更多