簡體   English   中英

使用Jquery檢查大寫/小寫/數字

[英]Checking for uppercase/lowercase/numbers with Jquery

要么我真的在這里遲鈍,要么只是睡眠不足,但為什么這不起作用? 如果我使用“或”運算符,它適用於每個單獨的測試,但一旦將其更改為“和”運算符,它就會停止工作。

我正在嘗試測試表單的密碼輸入,以查看它是否包含小寫,大寫和至少1個符號。 我遇到了很多麻煩,所以幫助很可愛,這是我的代碼。

var upperCase= new RegExp('[^A-Z]');
var lowerCase= new RegExp('[^a-z]');
var numbers = new RegExp('[^0-9]');

if(!$(this).val().match(upperCase) && !$(this).val().match(lowerCase) && !$(this).val().match(numbers))    
{
    $("#passwordErrorMsg").html("Your password must be between 6 and 20 characters. It must contain a mixture of upper and lower case letters, and at least one number or symbol.");
}
else
{
    $("#passwordErrorMsg").html("OK")
}

所有正則表達式都在搜索您提供的范圍之外的任何內容。 所以,[^ AZ]尋找除AZ之外的任何東西。

你也在否定每場比賽。

您可以嘗試通過刪除^,然后反轉邏輯來修改正則表達式定義。 所以,

var upperCase= new RegExp('[A-Z]');
var lowerCase= new RegExp('[a-z]');
var numbers = new RegExp('[0-9]');

if($(this).val().match(upperCase) && $(this).val().match(lowerCase) &&   $(this).val().match(numbers))  
{
    $("#passwordErrorMsg").html("OK")

}
else
{
    $("#passwordErrorMsg").html("Your password must be between 6 and 20 characters.     It must contain a mixture of upper and lower case letters, and at least one number or symbol.");
}

這甚至可能更直觀易讀?

var upperCase= new RegExp('[A-Z]');
var lowerCase= new RegExp('[a-z]');
var numbers = new RegExp('[0-9]');

if($(this).val().match(upperCase) && $(this).val().match(lowerCase) &&   $(this).val().match(numbers) && $(this).val().lenght>=6 && $(this).val()<=20)  
{
    $("#passwordErrorMsg").html("OK")

}
else
{
    $("#passwordErrorMsg").html("Your password must be between 6 and 20 characters.     It must contain a mixture of upper and lower case letters, and at least one number or symbol.");
}

暫無
暫無

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

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