用于名称验证的正则表达式仅允许使用字母和空格

cla*_*ios 3 javascript regex jquery

我正在尝试使用jQuery Validator进行验证,如果输入仅包含空格,并且仅在其中包含字母的情况下允许空格。

请注意,如果名称包含数字,它也应该显示错误。如果以字母开头,则只允许空格。

到目前为止,这是我仅允许使用字母和空格的内容:

jQuery.validator.addMethod("letterswithspace", function(value, element) {
    return this.optional(element) || /^[a-z\s]+$/i.test(value);
}, "letters only");
Run Code Online (Sandbox Code Playgroud)

也尝试过此操作,但它会修剪字符串并且不能在名称之间添加空格:

first_name : {
    letterswithspace : true,
     required: {
         depends:function(){
             $(this).val($.trim($(this).val()));
             return true;
         }
     }
 }
Run Code Online (Sandbox Code Playgroud)

Jaq*_*har 8

要匹配条款:

  • 表达式只能以字母开头
  • 表达式可以包含字母或空格

您需要使用此正则表达式:

/^[a-z][a-z\s]*$/
Run Code Online (Sandbox Code Playgroud)

因此,在您的js中应该是:

jQuery.validator.addMethod("letterswithspace", function(value, element) {
    return this.optional(element) || /^[a-z][a-z\s]*$/i.test(value);
}, "letters only");
Run Code Online (Sandbox Code Playgroud)

说明

  1. ^[a-z] 表示以一个字母开头
  2. [a-z\s]*$ 表示接受零个或多个字母或空格后

有效句子

如果您想要有效的句子结构:

  • 表达式只能以字母开头或结尾
  • 表达式不能包含连续的空格

使用:

/^([a-z]+\s)*[a-z]+$/
Run Code Online (Sandbox Code Playgroud)

顺便说说

  1. 这些正则表达式不接受大写字母。添加大写字母支持而不是a-z使用a-zA-Z


Dhi*_*tel 6

您需要使用此正则表达式:-

/^[a-zA-Z-,]+(\s{0,1}[a-zA-Z-, ])*$/;
Run Code Online (Sandbox Code Playgroud)

没有使用 Javascript 的 Jquery 验证器的示例:- 其工作正常Javascript 示例

希望它的工作!