2012-04-04 37 views
1

正則表達式會檢查給定字符串是否包含至少一個數字和一個大寫字母? 在此先感謝至少有一個數字和一個大寫字母的JavaScript正則表達式

我做這樣的

function validate_pass{ 
var var_password = document.getElementById("npassword").value; 
else if (!(/^(?=.*\d)(?=.*[A-Z]).+$/).test(var_password))){ 
    msg = "Password should contain atleast."; 

    showErrorMsgPassword(msg); 
    $('#npassword').val(''); 
    $('#cpassword').val(''); 
    return false; 
    } 

else return true; 
+0

像'/ [0-9] + [A-Z] + /'或'/ [0-9] + [A-Z] /'? – mshsayem 2012-04-04 02:34:19

+1

您需要提供更多信息,例如您想要匹配的內容以及您希望*不匹配的內容。你在這裏沒有提供任何答案,使你的問題成爲可能。請編輯以改進它,以便人們可以幫助您。謝謝。 :) – 2012-04-04 02:42:25

+0

數字和大寫字母可以出現在任何字符串 – 2012-04-04 02:55:52

回答

1

這已經有一段時間,因爲我已經做到了這一點,和我相當肯定有比這更有效的方式。您需要使用積極的lookaheads,但是應該有辦法從其中刪除通配符:

如果符合條件,此正則表達式(/^(?=.*[A-Z])(?=.*\d).*$/)將返回整個密碼。

('a3sdasFf').match(/^(?=.*[A-Z])(?=.*\d).*$/);

0

象下面這樣:

/(\d.*[A-Z])|([A-Z].*\d)/ 

要測試字符串匹配與否:

var str = "abc32dQef"; 
var is_matched = /(\d.*[A-Z])|([A-Z].*\d)/.test(str); 
+1

@mshsayem你試過'/(\ d。* [A-Z])|([A-Z]。* \ d)/。test(「abc32dQef」)'?注意:如果你想匹配結尾,你應該使用'$'。 – xdazz 2012-04-04 02:50:13

2

如果願望是測試一個字符串,看它是否有任何順序的至少一個數字和至少一個大寫字母與允許過任何其他字符,那麼這將工作:

var str = "abc32Qdef"; 
var re = /[A-Z].*\d|\d.*[A-Z]/; 
var good = re.test(str);​ 

工作演示了一堆的測試案例在這裏:http://jsfiddle.net/jfriend00/gYEmC/

+0

您可以使用Regex對象的'.test'方法。 – xdazz 2012-04-04 02:52:52

+0

@xdazz - 我切換到'.test()'。 – jfriend00 2012-04-04 03:00:34

相關問題