javascript - 替换javascript问题中字符串中的所有匹配项

标签 javascript regex

这是我的js代码:

html = html.replace("/["+increment+"]/gi", '[' + counter + ']');

其中增量为 0,计数器为 1 或

html = html.replace("/[0]/gi", '[1]');

我的版本不会将字符串中的 [0] 替换为 [1]。为什么?

最佳答案

您需要使用RegExp构造函数,因为正则表达式是动态的

var regex = new RegExp("\\[" + increment + "\\]", 'gi')
html = html.replace(regex, '[' + counter + ']');

如果需要,您还可以清理动态变量

if (!RegExp.escape) {
    //A escape function to sanitize special characters in the regex
    RegExp.escape = function (value) {
        return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
    };
}



//You could also escape the dynamic value it is an user input
var regex = new RegExp("\\[" + RegExp.escape(increment) + "\\]", 'gi')
html = html.replace(regex, '[' + counter + ']');

关于javascript - 替换javascript问题中字符串中的所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30595727/

相关文章:

javascript - Linux C++ 服务器与 Javascript 通信

Java/Hive 正则表达式解释

regex - 使用 sed 在 linux 中的多个文件中查找和替换字符串(正则表达式)

php - 如何替换字符串中的一两个连续换行符?

javascript - 使用 .getJSON 获取 Play 商店应用详细信息时出现跨源 block 请求 [CORS] 错误

javascript - promise : execute after loop

javascript - 如何操作JSON数据?

javascript - 如何修复 "Uncaught PDOException: ...Conversion failed when converting date and/or time from character string"?

javascript - RegEx如何修改为只接受1-9之间的1位数字JavaScript

java - 正则表达式组成