Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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/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
Don';如果javascript中存在字符,则不匹配_Javascript_Regex - Fatal编程技术网

Don';如果javascript中存在字符,则不匹配

Don';如果javascript中存在字符,则不匹配,javascript,regex,Javascript,Regex,我试图测试输入字段是否包含有效的“slug”(一个只能包含破折号和小写字母的字符串,在URL中使用) 我的问题是,用户可以写一个有效的slug,但是他们可以在有效字符之后写无效字符,并且仍然匹配 我的正则表达式如下所示:/[a-z\-]+/ 这应该匹配:“my-slug-is-valid” 但这不应该匹配:“my-SLUG-is-invalid” 然而,当我针对最后一个字符串测试正则表达式时,true返回 var re = /[a-z\-]+/, str = 'my-SLUG-is no

我试图测试输入字段是否包含有效的“slug”(一个只能包含破折号和小写字母的字符串,在URL中使用)

我的问题是,用户可以写一个有效的slug,但是他们可以在有效字符之后写无效字符,并且仍然匹配

我的正则表达式如下所示:
/[a-z\-]+/

这应该匹配:
“my-slug-is-valid”

但这不应该匹配:
“my-SLUG-is-invalid”

然而,当我针对最后一个字符串测试正则表达式时,
true
返回

var re = /[a-z\-]+/,
    str = 'my-SLUG-is not valid';

if (re.test(str) && str !== '') {
    console.log('Valid');
}

如果存在不属于char类的字符,是否可能返回false?

看起来您正在尝试匹配整个字符串。在这种情况下,将锚添加到正则表达式:

re = /^[a-z\-]+$/

您需要^$来锚定字符串的开头和结尾。

还匹配
我的slug是-
var re = /^[a-z-]+$/;