Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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_Regex - Fatal编程技术网

Javascript 是的,正则表达式问题

Javascript 是的,正则表达式问题,javascript,regex,Javascript,Regex,尝试通过JQuery和验证插件进行一些javascript表单验证 我正在使用与此规则非常匹配的输入值执行自定义验证规则 A-z 0-9 - _ ' & . 基本上,我搞不清楚答案。部分。这是我现在拥有的 /^[A-z0-9_]+(-)+$/i …我不知道这是不是很理想,它适用于它所涵盖的内容 但是,对上述字符进行正则表达式测试的最佳方法是什么?谢谢。你想要什么 var regex = /^[a-z0-9_\-.'&]/i; 这是你想要的吗 var regex = /^[a

尝试通过JQuery和验证插件进行一些javascript表单验证

我正在使用与此规则非常匹配的输入值执行自定义验证规则

A-z 0-9 - _ ' & .
基本上,我搞不清楚答案。部分。这是我现在拥有的

/^[A-z0-9_]+(-)+$/i
…我不知道这是不是很理想,它适用于它所涵盖的内容

但是,对上述字符进行正则表达式测试的最佳方法是什么?谢谢。

你想要什么

var regex = /^[a-z0-9_\-.'&]/i;
这是你想要的吗

var regex = /^[a-z0-9_\-.'&]/i;

我不完全确定您想匹配什么,但看起来您需要字母、数字或符号的任意组合。如果是这种情况,请使用以下方法:

/^[-\w.'&]+$/
请注意,
+
可以删除或替换为
*
,具体取决于要匹配的字符数


编辑-这意味着什么的一点解释:

  • [-
    -当在字符类的开头使用
    -
    时,它将作为文本
    -
    。如果在[]括号内使用,则表示一个范围,如
    a-Z
    0-9
  • \w
    -匹配任何字母、任何数字或
    \u
    符号。这通常相当于
    [a-zA-Z0-9\
  • &
    -在字符类中,这些字符除了文字字符外没有其他特殊含义
  • +
    -表示“至少一次”。如果要允许空字符串,可以将其替换为
    *
    ,如果只需要一个字符,可以将其删除,或者使用类似于
    {8}
    的量词

我不完全确定您想要匹配什么,但看起来您需要字母、数字或符号的任意组合。-&。。如果是这样,请使用以下方法:

/^[-\w.'&]+$/
请注意,
+
可以删除或替换为
*
,具体取决于要匹配的字符数


编辑-这意味着什么的一点解释:

  • [-
    -当在字符类的开头使用
    -
    时,它将作为文本
    -
    。如果在[]括号内使用,则表示一个范围,如
    a-Z
    0-9
  • \w
    -匹配任何字母、任何数字或
    \u
    符号。这通常相当于
    [a-zA-Z0-9\
  • &
    -在字符类中,这些字符除了文字字符外没有其他特殊含义
  • +
    -表示“至少一次”。如果要允许空字符串,可以将其替换为
    *
    ,如果只需要一个字符,可以将其删除,或者使用类似于
    {8}
    的量词

如果您希望匹配上述任何匹配条件,则以下代码应该可以工作任意次数:

/^[a-zA-Z0-9&_.\-']+$/
我已经包括了一些下面的测试示例,在注释中指出了模式应该是有效的还是无效的:

<script type="text/javascript">
    //A-z 0-9 - _ ' & .
    //valid
    var test_string = "This'Is'-Val1d&_.";
    if (test_string.match(/^[a-zA-Z0-9&_.\-']+$/)){
        alert("first test matched");
    }else{
        alert("first test did not match");
    }

    //invalid - whitespace not allowed
    test_string = "This IsNot- Va'l1d & _ .";
    if (test_string.match(/^[a-zA-Z0-9&_.\-']+$/)){
        alert("second test matched");
    }else{
        alert("second test did not match");
    }

    //invalid - ! is not allowed
    test_string = "'ThisIsNotValid!'";
    if (test_string.match(/^[a-zA-Z0-9&_.\-']+$/)){
        alert("third test matched");
    }else{
        alert("third test did not match");
    }

</script>

//A-z 0-9-u'&。
//有效的
var test_string=“这是“-Val1d&”;
如果(测试字符串匹配(/^[a-zA-Z0-9&.\-']+$/){
警报(“第一次测试匹配”);
}否则{
警报(“第一次测试不匹配”);
}
//无效-不允许空白
test_string=“这不是-Va'l1d&。”;
如果(测试字符串匹配(/^[a-zA-Z0-9&.\-']+$/){
警报(“第二次测试匹配”);
}否则{
警报(“第二次测试不匹配”);
}
//无效-!不允许
test_string=“'ThisIsNotValid!”;
如果(测试字符串匹配(/^[a-zA-Z0-9&.\-']+$/){
警报(“第三次测试匹配”);
}否则{
警报(“第三次测试不匹配”);
}

如果您希望匹配上述任何匹配条件,则以下代码应该可以工作任意次数:

/^[a-zA-Z0-9&_.\-']+$/
我已经包括了一些下面的测试示例,在注释中指出了模式应该是有效的还是无效的:

<script type="text/javascript">
    //A-z 0-9 - _ ' & .
    //valid
    var test_string = "This'Is'-Val1d&_.";
    if (test_string.match(/^[a-zA-Z0-9&_.\-']+$/)){
        alert("first test matched");
    }else{
        alert("first test did not match");
    }

    //invalid - whitespace not allowed
    test_string = "This IsNot- Va'l1d & _ .";
    if (test_string.match(/^[a-zA-Z0-9&_.\-']+$/)){
        alert("second test matched");
    }else{
        alert("second test did not match");
    }

    //invalid - ! is not allowed
    test_string = "'ThisIsNotValid!'";
    if (test_string.match(/^[a-zA-Z0-9&_.\-']+$/)){
        alert("third test matched");
    }else{
        alert("third test did not match");
    }

</script>

//A-z 0-9-u'&。
//有效的
var test_string=“这是“-Val1d&”;
如果(测试字符串匹配(/^[a-zA-Z0-9&.\-']+$/){
警报(“第一次测试匹配”);
}否则{
警报(“第一次测试不匹配”);
}
//无效-不允许空白
test_string=“这不是-Va'l1d&。”;
如果(测试字符串匹配(/^[a-zA-Z0-9&.\-']+$/){
警报(“第二次测试匹配”);
}否则{
警报(“第二次测试不匹配”);
}
//无效-!不允许
test_string=“'ThisIsNotValid!”;
如果(测试字符串匹配(/^[a-zA-Z0-9&.\-']+$/){
警报(“第三次测试匹配”);
}否则{
警报(“第三次测试不匹配”);
}


你也应该将代码与JSFIDLE链接一起作为答案的一部分。仅供参考,你不需要在字符类中逃逸
。哦……别忘了允许
-
:)@Justin man我真的应该更加注意我在做什么。我一半在看宇宙,一半在看堆栈溢出。修复ng现在你应该把代码和JSFIDLE链接一起作为你答案的一部分。仅供参考,你不需要在字符类中逃逸。
。哦……别忘了允许
-
:)@Justin man我真的应该更加注意我在做什么。我一半在看宇宙,一半在看堆栈溢出。修正现在,为了让我们了解你想要什么,你能给我们几个输入/输出示例吗?你意识到你的
[a-z]
没有做你认为的事情吗?为了让我们了解你想要什么,你能给我们几个输入/输出示例吗?你意识到你的
[a-z]
没有像你想象的那样做吗?如果你想逐字解释的话,你需要在开篇之后有
-
。@justin-在开篇之前有
-
可以吗也是吗?@TheDog-太感谢了!效果很好。我试过类似的方法,但可能在