javascript中用n次替换字符串中某个符号的每个匹配项的标准方法是什么?
我有文本字符串,其中每个单引号符号的出现需要用单引号符号替换为doubled,即代替每次出现的单引号必须出现两个。这是为PostgreSQL调用预解析文本的标准任务。
我发现函数replace()并不适合这种情况,即我们不能像replace('A','AA')
一样使用它,当我们有一个重复的字符串时,它不适用于这种特殊情况像'Test AA'
这样的符号,我们希望将其转换为'Test AAAA'
。
那么,这样做的正确方法是什么?
答案 0 :(得分:4)
replace('A','AA')
只会替换字符串中"A"
的第一次出现。你想要一个“replaceAll”,你需要使用带有g
标志的正则表达式:
'Test AA'.replace(/A/g, 'AA'); // Test AAAA
编辑以回答您的进一步问题。要使用变量构造一个ragular表达式,您需要使用RegExp
构造函数。这是一个冗长的例子:
var find = 'A';
var replacement = find + find; // AA;
var regex = new RegExp(find, 'g');
var toReplace = 'Test AA';
var replaced = toReplace.replace(regex, replacement);
console.log(replaced); // Test AAAA