允许 space 在 jQuery 验证器中使用字母数字规则

Allow space with alphanumeric rule in jQuery Validator

我正在使用 jquery 验证器字母数字规则,但我想允许 space 但现在的问题是当我给出 space 它显示错误,我的主要要求是我不希望用户在文本字段中输入特殊字符或符号,我的代码是这样的:

<form id="myform">
    <input type="text" name="field" />
    <br/>
    <input type="submit" />
</form>

Script:

$(document).ready(function () {
    
        $('#myform').validate({ // initialize the plugin
            rules: {
                field: {
                    required: true,
                    alphanumeric: true
                }
            },
            submitHandler: function (form) { // for demo
                alert('valid form submitted'); // for demo
                return false; // for demo
            }
        });
    
    });

您可以使用自定义 validator 方法并指定您的自定义验证 there.Whenever 用户点击提交按钮这将被调用并根据定义的规则验证输入在其中 .

在下面的代码中,我使用了正则表达式来匹配用户输入。即:

^:表示字符串的开始。
\w :它匹配任何单词字符(等于 [a-zA-Z0-9_])
(space or ) \s : 它匹配任何 space, 制表符或换行符。
$ : 表示字符串结束 .
.test(value) :匹配正则表达式和指定字符串,return真或假。

演示代码 :

$(document).ready(function() {
  //add this custom methid
  $.validator.addMethod("alphanumeric", function(value, element) {
    //test user value with the regex
    return this.optional(element) || /^[\w ]+$/i.test(value);
  }, "Letters, numbers only please");

  $('#myform').validate({ // initialize the plugin
    rules: {
      field: {
        required: true,
        alphanumeric: true
      }
    },
    submitHandler: function(form) { // for demo
      alert('valid form submitted'); // for demo
      return false; // for demo
    }
  });


});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js
"></script>
<form id="myform">
  <input type="text" name="field" />
  <br/>
  <input type="submit" />
</form>