Javascript 检查输入是否至少包含8个字符、1个数字和1个字母

Javascript 检查输入是否至少包含8个字符、1个数字和1个字母,javascript,html,regex,Javascript,Html,Regex,这是我试过的。。。 如果我只检查输入的值是否小于8,它就可以工作,但如果它至少包含1个字母和1个数字,它就无法工作。我做错了什么=/ $(document).ready(function() { var jVal = { 'passWord' : function() { $('body').append('<div id="nameInfo" class="info"></div>'); var nameInfo = $('

这是我试过的。。。 如果我只检查输入的值是否小于8,它就可以工作,但如果它至少包含1个字母和1个数字,它就无法工作。我做错了什么=/

$(document).ready(function() {

var jVal = {
    'passWord' : function() {

        $('body').append('<div id="nameInfo" class="info"></div>');

        var nameInfo = $('#nameInfo');
        var ele = $('#password');
        var pos = ele.offset();
        ra = /^[A-Za-z]+$/;
        re = /^[0-9]+$/;

        nameInfo.css({
            top: pos.top - 3,
            left: pos.left + ele.width() + 15
        });

        if (ele.val().length < 8 & re.test(ele.value) & ra.test(ele.value)) {
            jVal.errors = true;
            nameInfo.removeClass('correct').addClass('error').html('&larr; too short').show();
            ele.removeClass('normal').addClass('wrong');
        }

        else {
            nameInfo.removeClass('error').addClass('correct').html('&radic;').show();
            ele.removeClass('wrong').addClass('normal');
        }
    }

}
$('#password').change(jVal.passWord);
});
$(文档).ready(函数(){
var jVal={
“密码”:函数(){
$('body')。追加('');
变量nameInfo=$(“#nameInfo”);
var ele=$(“#密码”);
var pos=元件偏移量();
ra=/^[A-Za-z]+$/;
re=/^[0-9]+$/;
nameInfo.css({
顶部:位置顶部-3,
左:位置左+电气宽度()+15
});
if(ele.val().长度<8&重新测试(ele.value)和ra.test(ele.value)){
jVal.errors=true;
nameInfo.removeClass('correct').addClass('error').html('larr;太短').show();
ele.removeClass('normal')。addClass('error');
}
否则{
nameInfo.removeClass('error').addClass('correct').html('&radic;').show();
ele.removeClass('error').addClass('normal');
}
}
}
$('#password').change(jVal.password);
});

ra
检查密码是否完全由字母组成
re
检查密码是否完全由数字组成。它们是相互排斥的,因此不可能两者都是真的

相反,使用
ra=/[a-z]/i;re=/[0-9]/


编辑:另外,因为您使用的是jQuery,所以您应该在
ele.val()
上进行测试,而不是
ele.value

您可以使用单个正则表达式来完成所有操作:

/^(?=.*\d.*)(?=.*[a-z].*)\w{8,}$/i
前两段检查整个字符串中的数字和a-z字符,然后最后一段确保至少包含8个字符。如果需要,可以将最后一个
\w
更改为
,以允许使用特殊字符