我在javascript上使用regex进行密码验证时遇到问题。标准是:
我希望有人能帮助我解决这个问题:)
var ch_pass = /^([0-9]+).([a-zA-Z]+).({3,30})$/;
答案 0 :(得分:2)
您可以使用这样的前瞻:
var ch_pass = /^(?=.*?[0-9])(?=.*?[a-zA-Z]).{3,30}$/;
答案 1 :(得分:2)
我不建议尝试在单个正则表达式中执行此检查,因为它只会使它复杂化。单独做每个条件。
至少有一封信:
var has_letters = (/[a-zA-Z]/).test(password);
至少有一个号码:
var has_numbers = (/[0-9]/).test(password);
包含3到30个字符(含):
var has_length = 3 <= password.length && password.length <= 30;
这可以全部包含在一个函数中:
function is_password_valid(password) {
var has_letters = (/[a-zA-Z]/).test(password);
var has_numbers = (/[0-9]/).test(password);
var has_length = 3 <= password.length && password.length <= 30;
return has_letters && has_numbers && has_length;
}
或者如果你喜欢更密集的东西:
function is_password_valid(password) {
return ((/[a-zA-Z]/).test(password)
&& (/[0-9]/).test(password)
&& password.length >= 3
&& password.length <= 30);
}