2013-10-25 67 views
3

我有这样的代码:只允许字母和空格验证的jQuery

$(document).ready(function(){ 
     jQuery.validator.addMethod("lettersonly", function(value, element) { 
      return this.optional(element) || /^[a-z]+$/i.test(value); 
     }, "Only alphabetical characters"); 

但是,如果我插入一个双名,如“玛丽·简”的空间产生了一个问题。在我的规则中,我怎么可以允许空格?

+0

你知道'[a-z]'部件的含义吗? –

回答

6

您需要的空白字符(\s)添加到您的正则表达式:

jQuery.validator.addMethod("lettersonly", function(value, element) { 
    return this.optional(element) || /^[a-z\s]+$/i.test(value); 
}, "Only alphabetical characters"); 
1

^\S\n

在方括号内添加这

这是一个双重否定是检查not-not-whitespace或not-newline。

它只会检查空格,而不是换行符。 您的测试应该是这样的:

/^[a-z^\S\n]+$/i.test(value) 

来源:@Greg Bacon's answer

编辑:你可能需要添加A-Z以及为大写字母

1
jQuery.validator.addMethod("lettersonly", function(value, element) { 
return this.optional(element) || /^[a-z\s]+$/i.test(value); 
}, "Only alphabetical characters"); 

$('#yourform').validate({ 
      rules: { 
       name_field: { 
        lettersonly: true 
       } 
} 
     }); 
相关问题