4位数字Pin正则表达式

Mic*_*ump 1 regex validation

使用jQuery Bootstrapvalidator并尝试为金融应用程序添加4位数针的额外验证.

所以我已经确定用户的输入有4位数字并且是数字.

/^\d{4}$/
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试进行以下额外的正则表达式验证并且卡住了.任何帮助,将不胜感激.

  1. 确保4位数字不完全相同(即1111或9999)

  2. 不顺序(即1234,6789)

  3. 不是出生年份.为简化起见,我只是排除任何以19或20开头的数字(即1986年,2004年).

在此先感谢您的帮助.

Luc*_*ski 5

您的第一个和第三个约束很容易转换为正则表达式:

^(?!(.)\1{3})(?!19|20)\d{4}$
Run Code Online (Sandbox Code Playgroud)

在这里,我使用了两个负向前瞻,每个约束一个.

然而,尽管可能,非顺序约束对于正则表达式来说是不合理的卷积.

在这里,你决定是否值得痛苦:

^(?!(.)\1{3})(?!19|20)(?!0123|1234|2345|3456|4567|5678|6789|7890|0987|9876|8765|7654|6543|5432|4321|3210)\d{4}$
Run Code Online (Sandbox Code Playgroud)