Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多次替换字符_Javascript_Jquery - Fatal编程技术网

Javascript 多次替换字符

Javascript 多次替换字符,javascript,jquery,Javascript,Jquery,这是一把小提琴 现在我只能更新一次。我想有可能更新它不止一次。第一次它将替换点(.),第二次它必须替换我给出的第一个值。您可以使用变量来保存要更改的变量正则表达式。 例如: var regExVal= /\./g; $('#inputButton').click(function() { var value = $('#input').val(); var re = regExVal; regExVal= new RegExp(value, "g"); <

这是一把小提琴


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

您可以使用变量来保存要更改的变量正则表达式。 例如:

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

});
然后,在使用
值之前,执行以下操作:

value = escapeRegExp(value);

你到底想达到什么目的?问题还不完全清楚。你希望用户能够将文本放在占位符中(我猜),但你采取了一种完全错误的方法。提供更多的上下文。我把我要做的事情形象化了看着你贴的照片。。。这不适用于星号*。。。或者^和美元。在使用我看到的
replace
功能之前,需要从输入值中转义这些字符。我该怎么做呢?@squarestripe查看编辑后的答案。它展示了如何确保您可以使用任何想要的字符。
function escapeRegExp(str) {
    return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
value = escapeRegExp(value);