【发布时间】:2011-03-01 18:28:11
【问题描述】:
我必须使用正则表达式验证密码。 密码规则是至少 1 个大写字母和至少 2 个数字。
它工作正常,除非字符出现在字符串的末尾。
我使用的正则表达式是
"^(?=.*\d.{2})(?=.*[A-Z].{1})(?=.*[@#$%^&+=].{2}).{8,12}$"
规则:
- 最小长度 = 8
- 最小大写 = 1
- 最小数字 = 2
- 最小特殊字符 = 1
它适用于Test123$$、Test$123、TEST123$s、Test123$1、Test12$3,但如果指定的字符出现在字符串的末尾,如Test123$、Test$a12、@987654329,它会失败@, 123aa@@T.
如果有任何解决方法,请告诉我。
【问题讨论】:
-
您的正则表达式仅适用于
Test$123。 -
如果您尝试 123$$Test 会发生什么?我怀疑它会失败。我不太确定使用正则表达式是否是实现此目的的最佳工具。
-
@whatsisname 在这种情况下它不是最好的,但它会起作用。检查我的正则表达式:您的字符串成功通过。
标签: regex validation