[英]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.