我正在尝试删除单词末尾的感叹号。
例如。 remove("!!!Hi !!hi!!! !hi") === "!!!Hi !!hi !hi"
我可以删除所有惊叹号,但是无法在单词结尾处定位。
以下是我目前的情况。
function remove(s){
return s.replace(/([a-z]+)[!]/ig, '$1');
}
答案 0 :(得分:1)
您可以使用以下RegExp删除单词结尾处的!
:
"!!!Hi !!hi!!! !hi"
.replace(/!+\s/g, ' ') // this removes it from end of words
.replace(/!+$/g, '') // this removes it from the end of the last word
结果:"!!!Hi !!hi !hi"
答案 1 :(得分:1)
你不能尝试这个:
\b!+
它匹配一个单词后的!
。
答案 2 :(得分:0)
将正则表达式更改为:
/([a-z]+)!+/ig
然后
function remove(s){
return s.replace(/([a-z]+)!+/ig, '$1');
}
应该有效
答案 3 :(得分:0)
你可以使用这个正则表达式
console.log("!!!Hi !!hi!!! !hi!!!".replace(/([a-z]+)[!]+/ig, '$1'))
答案 4 :(得分:0)
我认为不使用正则表达式更容易,但是使用lastIndexOf和slice
类似的东西:
function removeQuestionmark(inputvalue) {
var index = inputValue.lastIndexOf("!");
if(inputValue.endsWith("!"))
return inputvalue.slice(0,index-1);
return `${inputvalue.slice(0,index-1)${inputValue.slice(index+1)}}
}
我还没有测试过代码。
答案 5 :(得分:0)
那么你应该添加一个+所以你需要多个!
function remove(s){
return s.replace(/([a-z]+)([!]+)/ig, "$1");
}