Don';如果javascript中存在字符,则不匹配
我试图测试输入字段是否包含有效的“slug”(一个只能包含破折号和小写字母的字符串,在URL中使用) 我的问题是,用户可以写一个有效的slug,但是他们可以在有效字符之后写无效字符,并且仍然匹配 我的正则表达式如下所示: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
/[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-]+$/;