【问题标题】:Do not allow SSN and phone number in a String REGEX [duplicate]不允许在字符串 REGEX 中使用 SSN 和电话号码 [重复]
【发布时间】:2012-12-26 13:30:03
【问题描述】:

可能重复:
Regular expression for SSN and phone number

^(?!.*(\\d{16})|.*(\\d{9})|.*(\\d{3}-\\d{2}-\\d{4})|.*(\\d{3}-\\d{3}-\\d{3})).*

上述regex 不允许在字符串中包含 SSN 和电话号码。但它也不允许\n(输入字符)。如果用户通过点击输入两行文本输入此regex 失败。

【问题讨论】:

  • 我需要一个答案,所以我重新发布了这个问题。有什么问题。
  • 问题是你在复制你的“问题”。 Stack Exchange 社区严重反对故意复制的内容。编辑您的第一个问题,使其成为一个连贯的问题,它可能会重新打开。
  • 哦,对了,删除自己的问题也可以触发问题禁令。

标签: java regex


【解决方案1】:

默认情况下,句点 (.) 不匹配换行符。如果您无法配置DOTALL 模式,请根据this SO answer,考虑以[\s\S]*(任意数量的空格或非空格字符)而不是.* 结尾。

【讨论】:

  • 如果用户输入文本换行,然后输入 123-123-123。即使 123-123-123 是无效格式,此内容仍被验证为正确。
  • @user679526 您是否修复了.* 的所有外观,而不仅仅是最后一个?您复杂的否定断言意味着您在替换时必须非常冗长。或者,想办法说“如果你找到这个正则表达式,则字符串无效”,这可能会更简单,更容易维护。
猜你喜欢
  • 2016-04-05
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多