2012-01-21 84 views
2

任何機構可以告訴我什麼是正則表達式驗證使用我的文本框應該只帶字母和數字?jQuery的REGEX驗證字母和數字onlyu

var BLIDRegExpression = /^[a-zA-Z0-9]*$/; 

    if (BLIDRegExpression.test(BLIDIdentier)) { 
     alert('The BLID Identifier may only consist of letters or numbers and must be exactly five characters long.'); 
     return false; 
    } 

我正在使用這一個,但它不工作。任何人都可以告訴我。

謝謝

+0

BLIDIdentier的價值是什麼? – marcio

+0

順便說一句,你可以使用/^[a-zA-Z0-9] {5} $ /檢查字符串是否也是5個字符長,如果你想要(也要測試你的錯誤信息的後半部分) – Dexter

回答

5

.test返回true如果字符串匹配。我認爲你想要:

var BLIDRegExpression = /^[a-zA-Z0-9]{5}$/; // {5} adds the requirement that the string be 5 chars long 

if (!BLIDRegExpression.test(BLIDIdentier)) { 
    alert('The BLID Identifier may only consist of letters or numbers and must be exactly five characters long.'); 
    return false; 
} 
+0

謝謝。但是當我輸入像這樣a0012或A0001仍然我得到驗證錯誤。它不應該發生對嗎? – user957178

+1

我剛剛在Chrome的控制檯中嘗試過。你使用的是什麼瀏覽器?試試[這個jsfiddle](http://jsfiddle.net/dHsPN/)。 –

+0

我在IE7 ..謝謝 – user957178

1

顛倒你的邏輯。 .test()匹配時返回true,不匹配時返回false。當它不匹配時,您希望執行您的if語句。如果你也希望它被要求正好是5個字符長,那麼你就可以在你的正則表達式使用{5},而不是*這樣的:

var BLIDRegExpression = /^[a-zA-Z0-9]{5}$/; 

if (!BLIDRegExpression.test(BLIDIdentier)) { 
    alert('The BLID Identifier may only consist of letters or numbers and must be exactly five characters long.'); 
    return false; 
}