只允许字母和空格验证jQuery。

5

我有这段代码:

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

但如果我插入一个双名字,比如“玛丽·简”,空格会成为一个问题。那么我该如何在规则中允许空格呢?


你知道[a-z]这部分是什么意思吗? - Jason P
3个回答

8
您需要在正则表达式中添加空格字符(\s):
jQuery.validator.addMethod("lettersonly", function(value, element) {
    return this.optional(element) || /^[a-z\s]+$/i.test(value);
}, "Only alphabetical characters"); 

2
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
                }
}
        });

1

^\S\n

将此代码添加到方括号之间。

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

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

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

来源:@Greg Bacon的回答

编辑:你可能也想添加A-Z以表示大写字母


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接