我试图创建一个正则表达式,确保用户输入8个字符,包括一个大写字母和一个数字。
HTML
<input type="password">
到目前为止,我有这个
JS
var validator = '^(?=.*[A-Z])(?=.*[0-9]).{8,}$'
我想做的是:
$('input').on('blur', function() {
if ($(this).val().match(validator)) {
alert('Correct!')
}
});
但由于某种原因,它不会通过。有什么想法吗?
答案 0 :(得分:1)
你拥有的是一个字符串。你需要声明一个正则表达式文字:
var validator = /^(?=.*?[A-Z])(?=.*?[0-9]).{8,}$/;
表现更好的正则表达式将是:
var validator = /^(?=[^A-Z]*[A-Z])(?=\D*\d).{8,}$/;