这里是2个字:
好:abc_-abc
错误:_abc_
或-abc-
这意味着可以在两者之间使用-
或_
,但不能在开始和结束处使用。
如何使用regexp进行测试?
有人帮我吗?
我的尝试:/\w(?![^_|^-])/g
-但无效。
答案 0 :(得分:0)
如果不是不需要的字符,则可以检查第一个和最后一个字符。
function test(s) {
return /^[^-_](.*[^-_])?$/.test(s);
}
console.log(['abc_-abc', 'a', 'ab', 'a-b', 'abc or -abc-', '-', '-a', 'a-'].map(test));
答案 1 :(得分:0)
您可以尝试以下正则表达式忽略字符串的开头和结尾的_
和-
形式。
^[^-_](.*[^-_])?$
function test(s) {
return /^[^-_](.*[^-_])?$/.test(s) ? 'Good' : 'Bad';
}
console.log(['abc_-abc', 'a', 'abc or -abc-'].map(test));
正则表达式说明图:
正则表达式demo。
答案 2 :(得分:-1)
下面的答案很好用:
[a-z] {0,90} [_] [-] [a-z] {0,90}