0

啊我在codelab中做正则表达式。它要求我“编写一个正则表达式,选择包含社会安全号码的行(纯九位数字形式,ddddddddd,或以标准方式用连字符分隔:ddd-dd-dddd)对于这个练习,你必须围绕你的带双引号的解决方案。”

我对其进行了编码,但它给了我错误提示“备注:问题:^\d{3}[-]?\d{2}[-]?\d{4}$ 接受:87231-6449”我该如何编码所以我会有 xxx-xx-xxxx

 "^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$"
4

2 回答 2

0

您当前的正则表达式^\d{3}[- ]?\d{2}[- ]?\d{4}$允许连字符或空格任意出现或不出现在指定的位置。它不强制所有连字符/空格必须全部出现或全部不出现。

如果你只想接受上面2种格式的社保,那么你可以使用这个正则表达式:

^(\d{3}-\d{2}-\d{4}|\d{9})$

添加字符串转义序列后:

"^(\\d{3}-\\d{2}-\\d{4}|\\d{9})$"
于 2012-09-19T00:06:27.600 回答
0

^\d{3}-?\d{2}-?\d{4}$:所有连字符都是可选的。(允许所有有或没有连字符的组合)

^(\d{3}-\d{2}-\d{4}|\d{9})$: 只允许带连字符或不带连字符

于 2012-09-19T00:06:38.210 回答