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

Don't match if character is present in javascript

本文关键字:字符 匹配 存在 如果 javascript Don      更新时间:2024-05-19

我正在尝试测试输入字段是否包含有效的"slug"(一个只能包含破折号和小写字母的字符串,用于URL)

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

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

这应该匹配:'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-]+$/;

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