多次替换字符

时间:2014-10-05 16:10:29

标签: javascript jquery

这是一个小提琴http://jsfiddle.net/aLr2yx8d/

$('#inputButton').click(function() {    

    var value = $('#input').val(); 
    var re = /\./g;
    var output = $('#output');

    var text = output.text().replace(re, value);
    output.html(text); 

});

现在我只能更新一次。我希望有可能不止一次更新它。第一次它将替换点(。),第二次它必须替换我给出的第一个值。

1 个答案:

答案 0 :(得分:1)

您可以使用变量来保存您想要更改的变量RegularExpression。 例如:

var regExVal= /\./g;
$('#inputButton').click(function() {    

    var value = $('#input').val(); 
    var re = regExVal;
    regExVal= new RegExp(value, "g"); <-- this is how you set the new value
    var output = $('#output');

    var text = output.text().replace(re, value);
    output.html(text); 

});

Here's the JsFiddle

编辑:

正如我在评论中提到的,您需要转义某些字符以用作正则表达式中的字符而不是运算符。我找到了一个很好的答案in another question。将其包含在您的脚本中:

function escapeRegExp(str) {
    return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}

然后,在使用value之前,您可以执行以下操作:

value = escapeRegExp(value);