我需要一个正则表达式来验证屏幕中显示的带有掩码的正确SSN号码。
但是我们只显示SSN的最后4位数字,我们用*
符号
用户只能在*
处输入一个号码,或者按原样保留。
用户可以输入有效输入或从不更改
***-**-1234
123-55-1234
用户将显示更改为无效SSN
5**-**-1234
A**-**-1234
AAA-5*-1234
需要 JavaScript正则表达式代码/文章。
答案 0 :(得分:3)
您可以使用正则表达式:
(\d{3}-\d{2}|\*{3}-\*{2})-\d{4}
允许:
***-**-1234
123-55-1234
没有别的。
\d
表示一个数字(即0到9之间的任何数字(也是unicode数字)); \d{3}-\d{2}
表示 3位数字,后跟字符-
后跟2位数字; \*{3}-\*{2}
表示 3个字符*
,后跟字符-
,后跟2个字符*
; |
是交替运算符。这意味着大致“或”,例如(a|b)
表示匹配a
或b
; (\d{3}-\d{2}|\*{3}-\*{2})
表示(3位数,后跟char -
后跟2位数) OR (3个字符*
,其次是由char -
后跟2个字符*
)。(...)-\d{4}
表示与上一项中所述相同,后跟char -
后跟4位。总之,(\d{3}-\d{2}|\*{3}-\*{2})-\d{4}
表示:
-
后跟2位数字) OR (3个字符*
,后跟字符{{1} }后跟2个字符-
)),后面跟着字符*
后跟4位数字