2011-04-20 166 views
13

我正在寫一個自定義方法的jQuery插件:如何檢查字母數字字符

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
     return this.optional(element) || (/*contains "^[a-zA-Z0-9]*$"*/); 
}); 

我知道我想要什麼的正則表達式,但我不知道如何在JS寫的東西如果它包含字母數字字符,則評估爲True。任何幫助?

+0

如果您改變了您的問題,請編寫'EDIT'並描述您在您的問題中所做的改變。 – nk9 2012-07-17 12:12:17

回答

37

請參閱test RegExp方法。

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
     return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value); 
}); 
+2

偉大的答案。我建議在正則表達式中使用'+'而不是'*',否則空字符串將匹配 – Cfreak 2011-04-20 14:50:33

+0

我同意,因爲可選將處理空字符串。 – 2011-04-20 14:52:28

+0

這幾乎就是我想要的。如果我輸入'qwertyuiop',那麼它會是真的。但我也想輸入'qwerty uiop'(有一個空格)並且仍然是真的。即使空白量超過最小長度,我也不想要一個完全空白的輸入。我怎樣才能做到這一點? – AKor 2011-04-20 15:03:43

3

可以在JavaScript中使用正則表達式:

if(yourstring.match(/^[a-zA-Z0-9]+/)) { 
    return true 
} 

請注意,我用+代替*。隨着*如果字符串是空的,將返回true

0
$("input:text").filter(function() { 
    return this.value.match(/^[a-zA-Z0-9]+/); 
}) 
4
// use below ... It is better parvez abobjects.com 
jQuery.validator.addMethod("postalcode", function(postalcode, element) { 
    if(this.optional(element) || /^[a-zA-Z\u00C0-\u00ff]+$/.test(postalcode)){ 
     return false; 
    }else{ 
     return this.optional(element) || /^[a-zA-Z0-9]+/.test(postalcode); 
    } 

}, "<br>Invalid zip code"); 



rules:{ 
    ccZip:{   
      postalcode : true 
     }, 
     phone:{required: true}, 

This will validate zip code having no letters but alphanumeric 
7

如果你想使用西班牙語字符在你的字母數字驗證您可以使用此:

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
    return this.optional(element) || /^[a-zA-Z0-9áéíóúÁÉÍÓÚÑñ ]+$/.test(value); 
}); 

我還加一個空格讓用戶添加詞語

+0

如果你想使用更多的語言,你可以添加法國和德國的字符,但正則表達式可能會非常「沉重」。只要使用你真正會評估的字符 – OtakuPahp 2012-10-06 21:51:27

相關問題