Javascript 检查输入是否至少包含8个字符、1个数字和1个字母
这是我试过的。。。 如果我只检查输入的值是否小于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 = $('
$(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('← too short').show();
ele.removeClass('normal').addClass('wrong');
}
else {
nameInfo.removeClass('error').addClass('correct').html('√').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
更改为
,以允许使用特殊字符