正则表达式匹配一个字符匹配,而匹配另一个字符

时间:2017-06-23 20:01:28

标签: javascript regex

正如问题所说,我试图匹配一个字符的出现,同时又出现另一个字符。例如,在字符串"_Hell_o"中,我希望匹配第一个"_",而在"++Hello"的情况下,我希望与"+"完全匹配。基本上是这样的函数:

function change(str){
    console.log(str.replace(/[_+{2}]/, ''));

change("++Hello");
change("_Hello");
change("+Hello");

输出

>>> Hello
>>> Hello
>>> +Hello

但该功能不起作用

3 个答案:

答案 0 :(得分:3)

您可以使用两个替换来解决您的问题,例如:



var array = ["++Hello", "_Hello", "+Hello"];
for (var i = 0; i < array.length; i++) {
    console.log(array[i].replace(/\+{2}/, '').replace(/_(.*)/, '$1'))
}
&#13;
&#13;
&#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的回答一样,它会删除第一次出现++(如果有)和第一次出现的_(如果有的话)。