我目前正在使用我创建的正则表达式来处理密码。
它必须遵守以下条件:
一切正常,但现在我希望它只接受一个特殊字符。我搜索并尝试了很多方法(例如在组的末尾使用{1}),但根本不起作用!结果,像Aa1;;aaa这样的字符串仍然可以匹配。
请问有人能告诉我怎么做吗?
它必须遵守以下条件:
- 8个字符
- 至少一个大写字母(A-Z)
- 至少一个小写字母(a-z)
- 至少一个数字(0-9)
- 其中一个特殊字符: .,:;'!@#$%^&*_+=|(){}[?-]/\
- 禁止使用以下字符: <>`
(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\])(?!.*[<>`]).{8}
一切正常,但现在我希望它只接受一个特殊字符。我搜索并尝试了很多方法(例如在组的末尾使用{1}),但根本不起作用!结果,像Aa1;;aaa这样的字符串仍然可以匹配。
请问有人能告诉我怎么做吗?
(?=[^\W_]*[\W_][^\W_]*$)
。但我强烈建议您将正则表达式分开,这样您可以向用户发出警告,说明他们的密码失败的原因(例如:“你需要至少一个数字”,“不能有两个或更多的特殊字符”,...)。 - user4227915