[英]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.