Javascript验证 - 最小/最大字符数AND必须包含数字

时间:2014-07-11 14:06:43

标签: javascript jquery validation

我有以下问题:

我需要使用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;是真的

3 个答案:

答案 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');
}