使用 * 验证 SSN 的正则表达式

Mur*_*san -1 html javascript regex validation jquery

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

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

用户可以在 处仅输入一个数字*,也可以保持原样。

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

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

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

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

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

acd*_*ior 6

您可以使用正则表达式:

(\d{3}-\d{2}|\*{3}-\*{2})-\d{4}
Run Code Online (Sandbox Code Playgroud)

允许:

***-**-1234
123-55-1234
Run Code Online (Sandbox Code Playgroud)

没有别的。

解释:

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

概括来说,(\d{3}-\d{2}|\*{3}-\*{2})-\d{4}意思是:

  • ((3 位数字,后跟 char-后跟 2 位数字) OR (3 个字符*,后跟 char-后跟 2 个字符*)),全部后跟 char-后跟 4 位数字