Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有通配符的最小字符数_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 具有通配符的最小字符数

Javascript 具有通配符的最小字符数,javascript,jquery,regex,Javascript,Jquery,Regex,我有下面的通配符搜索,它查找以下条件 $.validator.addMethod("FirstName", function (value, element) { return this.optional(element) || /^[a-zA-Z''-'\s]{3,20}[\%\*]{0,1}$/i.test(value); }, "For wild card search minimum of 3 characters should be entered."); $("#frmJs

我有下面的通配符搜索,它查找以下条件

$.validator.addMethod("FirstName", function (value, element) {
    return this.optional(element) || /^[a-zA-Z''-'\s]{3,20}[\%\*]{0,1}$/i.test(value);
}, "For wild card search minimum of 3 characters should be entered.");

$("#frmJscsSearch").validate({
    rules : {
        FirstName : "required FirstName"
    },
});
  • 如果用户输入2个字符,则其有效
  • 如果用户输入3个字符,则其有效

  • 如何验证用户是否使用
    *
    输入了2个字符,则该字符无效?

    查看此正则表达式是否符合您的要求(使用交替
    |
    ):

    你原来的正则表达式也有点乱,所以我对它进行了编辑。
    您也可以尝试检查错误的输入,而不是正确的输入:

    var re = /([^a-z '\-*%])|(^[\w\W]{0,2}[\*\%]&)|(^[ \-*%'])|([ \-]$)|([ \-']{2,})/i
    !(re.test(value))
    
    这样,您可以更轻松地检查更具体的条件。上面的regexp描述了以下规则:

    • 值应仅包含
      a-z'-*%
      字符
    • *
      %
      应为最后一个符号(如果使用),前面至少有三个其他字符
    • 值不能以
      -'*%
      开头
    • 值不能以
      -
      结尾
    • 值不能在一行中包含多个
      -'

    不确定问题是什么?@guest271314,请检查我的问题是要求两个字符后跟
    *
    字符返回
    false
    ?前两个字符可以是任何字符吗?还是只有字母数字字符?您能否更新问题以描述哪些字符是有效输入?@guest271314,请检查正则表达式。如果需要验证。
    var re = /([^a-z '\-*%])|(^[\w\W]{0,2}[\*\%]&)|(^[ \-*%'])|([ \-]$)|([ \-']{2,})/i
    !(re.test(value))