栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SSN和电话号码的正则表达式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSN和电话号码的正则表达式

您可以尝试:

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

解释一下,如果我们阅读了您提供的查询:

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

我们可以读到:(

is not followed by xxxxxxxxx OR is not followed by xxx-xx-xxxx OR isnot followed by xxx-xxx-xxx
在我的顶部版本中,我改写为:
is not (xxxxxxxxx OR xxx-xx-xxxx ORxxx-xxx-xxx)
。)。

保证世界上任何字符串都不匹配其中至少两个,因此它们的组合始终为真,从而为您提供了一个简单得多的有效正则表达式:

^$

?!
是零宽度的断言,因此它不消耗任何东西。即使匹配先行检查所检查的内容,也不会消耗输入,因此您永远都不会达到$,这是先行之外所必需的。只需
.*
在最终
$
解决方案之前添加即可。

我认为,您的连字符后不应加上?。将它们设为可选,意味着您还匹配

xxx-xxxxxx
xxx-xx-x-xxx
。如果您打算这样做,则可以将它们添加回去,或大大简化您的正则表达式,以:

^(?!\d{3}-?\d{2}-?\d-?\d{3}$).*

另一个问题是

\d[9]$
\d{9}$



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/446950.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号