正如问题所说,我试图匹配一个字符的出现,同时又出现另一个字符。例如,在字符串"_Hell_o"
中,我希望匹配第一个"_"
,而在"++Hello"
的情况下,我希望与"+"
完全匹配。基本上是这样的函数:
function change(str){
console.log(str.replace(/[_+{2}]/, ''));
change("++Hello");
change("_Hello");
change("+Hello");
输出
>>> Hello
>>> Hello
>>> +Hello
但该功能不起作用
答案 0 :(得分:3)
您可以使用两个替换来解决您的问题,例如:
var array = ["++Hello", "_Hello", "+Hello"];
for (var i = 0; i < array.length; i++) {
console.log(array[i].replace(/\+{2}/, '').replace(/_(.*)/, '$1'))
}
&#13;
答案 1 :(得分:3)
/^_{1}|\+{2}/g
可以解决问题。
function change(str){
console.log(str.replace(/^_{1}|\+{2}/g, ''));
}
change("++Hello");
change("+++Hello");
change("_Hell__o");
change("___Hello");
change("+Hello");
答案 2 :(得分:0)
str.replace('++', '').replace('_', '')
YCF_L的答案的简化版本。与YCF_L的回答一样,它会删除第一次出现++
(如果有)和第一次出现的_
(如果有的话)。