有人可以为我提供与之匹配的SSN的正则表达式
123-45-6789
要么
XXX-XX-XXXX
我目前有^\d{3}-?\d{2}-?\d{4}$匹配第一个表达式,但我需要添加第二个表达式作为替代.
谢谢!
spl*_*ash 49
要严格回答你的问题:
^(123-45-6789|XXX-XX-XXXX)$
Run Code Online (Sandbox Code Playgroud)
干了工作.;-)
如果您阅读Wikipedia的SSN文章中的"有效SSN"部分,那么很明显SSN验证的正则表达式有点复杂.
因此一点点更准确的纯SSN的正则表达式应该是这样的:
^(?!(000|666|9))\d{3}-(?!00)\d{2}-(?!0000)\d{4}$
Run Code Online (Sandbox Code Playgroud)
Laz*_*rus 36
(^\d{3}-?\d{2}-?\d{4}$|^XXX-XX-XXXX$) 应该这样做.
----编辑----
正如乔尔所指出的,你也可以做^(\d{3}-?\d{2}-?\d{4}|XXX-XX-XXXX)$一些更整洁的事情.
因此,您目前拥有: ^\d{3}-?\d{2}-?\d{4}$
您需要的是允许所有这些数字块都改为“ X”。作为正则表达式,这也相当简单-只需修改现有的正则表达式即可,X而不是\d在出现的三个地方分别使用:X{3}-?X{2}-?X{4}
您不会希望将数字代码与和X代码结合使用,因此只需要允许使用一种或另一种情况,因此将它们包装在方括号中,然后使用竖线字符来指定一种或另一种,如下所示:
^((\d{3}-?\d{2}-?\d{4})|(X{3}-?X{2}-?X{4}))$
Run Code Online (Sandbox Code Playgroud)
您可能还希望允许使用大写或小写的X。这可以通过使用[Xx]或通过使整个事物不区分大小写来指定,使用i正则表达式外的修饰符。
| 归档时间: |
|
| 查看次数: |
91360 次 |
| 最近记录: |