2012-07-18 71 views
0
$('#reg_submit').click(function() { 
    var reg_password1 = $('#reg_password1').val(); 
    letters = /([a-z])([0-9])/; 
    var errorMessage = ''; 

    if (! reg_password1.value.match(letters)) 
    { 
    errorMessage = "Password must be alphanumeric"; 
    $('#msg_regpass1').html(errorMessage).show(); 
    } 
    else { 
    $('#msg_regpass1').html('').hide(); 
    } 
}); 

我用上面的jQuery代碼用於應用字母數字驗證,以我的註冊page.but我得到)來匹配(相關的JavaScript錯誤,比賽的東西是不確定的那樣。 任何人都可以爲上述問題提出解決方案,或者請提供一些其他代碼以獲取上述代碼的字母數字驗證。 是字母前進模式還沒有字母數字正常工作validation.can有人建議其他模式jQuery的字母數字驗證

感謝

+0

8個問題,到目前爲止並沒有一個公認的答案?如果有幫助,請[請接受答案](http://meta.stackexchange.com/q/5234)。 – Asif 2012-07-18 01:18:32

+0

@ user1334095你應該接受一個答案! – silentw 2014-01-24 14:26:46

回答

0

使用

reg_password1.match(letters) 
0

您的jQuery .val();方法將返回你的價值,從而改變這一行

if(!reg_password1.value.match(letters)) 

if(!reg_password1.match(letters)) 

我猜你想要一個稍微不同的正則表達式。

如果所有字符必須爲AZ或0-9(不區分大小寫),那麼試試這個:

/^[a-z0-9]*$/i 

然而,所有的說,如果這是一個真正的密碼字段,你應該讓用戶選擇的符號像$,#,!,@,%_, - ,(,[,),]等,以使他們能夠選擇一個強大的密碼。 ;-)

+1

感謝它的工作 – user1334095 2012-07-18 01:46:46

+0

letters = /([a-z])([0-9])/; – user1334095 2012-07-18 01:57:53

+0

表示字母圖案效果不佳。你可以建議其他 – user1334095 2012-07-18 01:58:24

1

正如你所要求的是一個建議,這裏有一個開始:你可能想要的正則表達式是/^[a-z\d]+$/i。只有當正則表達式包含字符串中任何位置的單個小寫字母或數字時,您現有的正則表達式才匹配;建議說每個角色都必須是。

或者,您可以對您的正則表達式使用略有變化:/[^a-z\d]/i,它與單個非字母數字值相匹配。然後調整你的邏輯來說:如果我在這裏有一個匹配,那麼字符串是無效的。

只要match未定義,請閱讀regex-related methods in JavaScript。有些屬於字符串,有些屬於Regexp類。

6

這一個是爲我工作:

var reg_password1 = 'test123#'; 
var letters = /^[a-zA-Z0-9]+$/; 

var result = letters.test(reg_password1); 

console.log(result);​ 

DEMO

+0

對於小提琴和用於'Regexp.prototype.test'的+1。 – 2012-07-18 01:24:56