我有以下问题:
我需要使用Javascript / jQuery验证输入(密码字段)
规则是:
必须是8到32个字符 它必须包含字母和至少一个数字
所以我的逻辑如下,但我似乎无法实现它
是8到32
if it's NOT 8 to 32 characters and doesn't have numbers
{
jQuery('#passwordfield').addClass('error');
}
我尝试了以下内容(为了测试目的,仅将0作为数字)
if(((jQuery('#passwordfield').val().length <= 7) || (jQuery('#passwordfield').val().length >= 33)) && ((jQuery('#passwordfield').val().indexOf("0") == -1)))
{
jQuery('#passwordfield').addClass('error');
}
上面代码的问题是,如果输入足够的字符(8到32)并且自&amp;&amp;和&amp;是真的
答案 0 :(得分:4)
试试这个:
var p = jQuery('#passwordfield').val();
if(p.length <=7 || p.length >= 33 || !p.match(/\d/) || !p.match(/[a-z]/i))
$('.whatever').addClass('error');
答案 1 :(得分:0)
您可以使用正则表达式: -
var val = jQuery('#passwordfield').val();
if(val.length <=7 || val.length >= 33 || !/[0-9]/.test(val) || !/[a-zA-Z]/.test(val))
{
// show error
}
答案 2 :(得分:0)
字符串必须包含0 .. *字母和1 .. *数字(总长度为8..32):
if (str.search(/^[a-zA-Z0-9]{8,32}$/) == -1 || str.search(/\d/) == -1) {
jQuery('#passwordfield').addClass('error');
}
字符串必须包含1 .. *字母和1 .. *数字(总长度为8..32):
if (str.search(/^[a-zA-Z0-9]{8,32}$/) == -1 || str.search(/[a-zA-Z]\d|\d[a-zA-Z]/) == -1) {
jQuery('#passwordfield').addClass('error');
}