繁体   English   中英

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

[英]Don't match if character is present in javascript

我正在尝试测试输入字段是否包含有效的“子句”(URL中只能使用破折号和小写字母的字符串)

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

我的正则表达式看起来像这样: /[az\\-]+/

这应该匹配: 'my-slug-is-valid'

但这不应该匹配: 'my-SLUG-is not valid'

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM