簡體   English   中英

Javascript驗證-最小/最大字符數,並且必須包含數字

[英]Javascript validation - Min/Max number of characters AND must contain number

我有以下問題:

我需要使用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)並且不包含數字,則返回true,因為&&的第一部分為true

嘗試這個 :

var p = jQuery('#passwordfield').val();
if(p.length <=7 || p.length >= 33 || !p.match(/\d/) || !p.match(/[a-z]/i))
    $('.whatever').addClass('error');

您可以使用正則表達式:

var val = jQuery('#passwordfield').val();
if(val.length <=7 || val.length >= 33 || !/[0-9]/.test(val) || !/[a-zA-Z]/.test(val))
{
// show error
}

字符串必須包含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');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM