只允许字母和空格验证 jQuery


allow only letters and spaces validate jquery

我有这个代码:

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

但是,如果我插入像"Mary Jane"这样的双重名称,则空格会产生问题。 如何在规则中也允许空格?

您需要将空格字符 ( 's ) 添加到正则表达式中:

jQuery.validator.addMethod("lettersonly", function(value, element) {
    return this.optional(element) || /^[a-z's]+$/i.test(value);
}, "Only alphabetical characters"); 
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
                }
}
        });

^'S'n

将其添加到方括号之间

这是一个双重否定,用于检查非空格或非换行符。

它只会检查空格,而不检查换行符。您的测试应如下所示:

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

来源:培根@Greg答案

编辑:您可能还想为大写字母添加A-Z