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

时间:2017-02-01 08:53:20

标签: javascript jquery regex

我尝试使用jQuery Validator进行验证,如果输入只包含空格,并且只有在其中包含空格时才允许空格。

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

这是我到目前为止只允许字母和空格:

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

还尝试了这个,但它修剪了字符串,并且不能在名称之间添加空格:

first_name : {
    letterswithspace : true,
     required: {
         depends:function(){
             $(this).val($.trim($(this).val()));
             return true;
         }
     }
 }

5 个答案:

答案 0 :(得分:4)

符合条款:

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

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

/^[a-z][a-z\s]*$/

所以在你的js中它应该是:

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

<强>解释

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

    如果你想要一个有效的句子结构:

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

    使用:

    /^([a-z]+\s)*[a-z]+$/
    

    顺便说一下

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

答案 1 :(得分:1)

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

bind_exe_to_hotkey(exe,hotkey)
{
    run_label:
        Run, %exe%
        WinWait, ahk %exe%
        WinActivate
    Return

    HotKey, %hotkey%, run_label
}

bind_exe_to_hotkey("cmd.exe","#c")

使用Javascript没有Jquery Validator的示例: - 工作正常Javascript Example

希望它的工作!!

答案 2 :(得分:1)

使用正则表达式对全名进行jQuery验证

验证包括:

  1. 姓名不允许输入数字。

  2. 名称仅允许使用字母,不允许使用任何特殊字符。

    <html>
    <body>
    <label>Full Name:</label>
    <input type="text" class="form-control name-valid">
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <script>
    $(document).ready(function() {
     $('.name-valid').on('keypress', function(e) {
      var regex = new RegExp("^[a-zA-Z ]*$");
      var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
      if (regex.test(str)) {
         return true;
      }
      e.preventDefault();
      return false;
     });
    });
    </script>  
    </body>
    </html>
    

对于演示,请点击here

答案 3 :(得分:0)

/^[a-z][a-z\s]*$/i.test(value) // 不区分大小写

答案 4 :(得分:-1)

jQuery.validator.addMethod("letterswithspace", function(value, element) {
return this.optional(element) || /^[a-zA-Z ]*$/.test(value); }, "letters only");