将符号乘以字符串

时间:2015-03-09 17:20:32

标签: javascript string

javascript中用n次替换字符串中某个符号的每个匹配项的标准方法是什么?

我有文本字符串,其中每个单引号符号的出现需要用单引号符号替换为doubled,即代替每次出现的单引号必须出现两个。这是为PostgreSQL调用预解析文本的标准任务。

我发现函数replace()并不适合这种情况,即我们不能像replace('A','AA')一样使用它,当我们有一个重复的字符串时,它不适用于这种特殊情况像'Test AA'这样的符号,我们希望将其转换为'Test AAAA'

那么,这样做的正确方法是什么?

1 个答案:

答案 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