2011-04-20 92 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

相关问题