仅查找开始和结束字符

时间:2019-09-06 10:58:14

标签: javascript regex

这里是2个字:

好:abc_-abc

错误:_abc_-abc-

这意味着可以在两者之间使用-_,但不能在开始和结束处使用。 如何使用regexp进行测试?

有人帮我吗?

我的尝试:/\w(?![^_|^-])/g-但无效。

3 个答案:

答案 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));

正则表达式说明图:

enter image description here

正则表达式demo

答案 2 :(得分:-1)

下面的答案很好用:

[a-z] {0,90} [_] [-] [a-z] {0,90}