Javascript 将子字符串中的所有替换为特殊字符

Javascript replace all in substring with special characters

本文关键字:替换 特殊字符 字符串 Javascript      更新时间:2023-09-26

我需要替换所有出现的'|B' 与 '' 我尝试使用"replace",它只替换字符串中的第一个匹配项,并且以下两个 ReplaceAll 原型都没有产生预期的结果:

String.prototype.replaceAll = function(search, replacement) {
    var target = this;
    return target.replace(new RegExp(search, 'g'), replacement);
};

String.prototype.replaceAll = function(search, replacement) {
    var target = this;
    return target.split(search).join(replacement);
};

任何帮助将不胜感激!

从表达式创建正则表达式时,可能会有需要转义的字符,这样它们就不会被视为正则表达式。在您的情况下,|是正则表达式中的特殊字符。

请参阅 Javascript 中是否有 RegExp.escape 函数?

// Shamelessly copy/pasted from the link above
RegExp.escape = function(s) {
    return s.replace(/[-'/''^$*+?.()|[']{}]/g, '''$&');
};
String.prototype.replaceAll = function(search, replacement) {
    return this.replace(new RegExp(RegExp.escape(search), 'g'), replacement);
};