-2

我需要一个正则表达式来验证屏幕中显示的正确 SSN 号码并带有掩码。

但是,我们只显示 SSN 的最后 4 位数字,并用*符号掩盖其他字符

用户可以在 的位置仅输入一个数字,也可以*按原样离开。

用户可以输入有效的输入,否则他们永远不会改变

***-**-1234 123-55-1234

用户将显示更改为无效的 SSN

5**-**-1234 A**-**-1234 AAA-5*-1234

为此需要一个JavaScript 正则表达式代码/文章。

4

1 回答 1

6

您可以使用正则表达式:

(\d{3}-\d{2}|\*{3}-\*{2})-\d{4}

允许:

***-**-1234
123-55-1234

没有别的了。

解释:

  • \d表示一个数字(即从 0 到 9 的任何数字(也是 unicode 数字));
  • \d{3}-\d{2}表示3 位数字,后跟 char-后跟 2 位数字
  • \*{3}-\*{2}表示3 个字符*,然后是 char,-然后是 2 个字符*
  • |是交替运算符。它的意思大致是“或”,类似的(a|b)意思是匹配ab
  • 所以:(\d{3}-\d{2}|\*{3}-\*{2})表示(3 位数字,后跟 char-后跟 2 位数字) OR (3 chars *,后跟 char-后跟 2 chars *)
  • 最后,整个代码(...)-\d{4}的含义与上一项中解释的相同,后跟 char-后跟 4 digits

总而言之,(\d{3}-\d{2}|\*{3}-\*{2})-\d{4}意味着:

  • ((3 位数字,后跟 char-后跟 2 位数字) OR (3 chars *,后跟 char-后跟 2 chars *)),所有后跟 char-后跟 4 位数字
于 2013-06-26T12:20:36.250 回答