jquery使用动态令牌替换正则表达式

时间:2015-07-22 09:57:18

标签: jquery regex string replace

我正在尝试使用jquery replace()替换textarea中的各种字符串(标记)。我可以使它工作,除了它只替换textarea中的第一次出现并需要它做所有。

我可以做这样的替换;

var token = '{IP}';

sdText = sdText.replace(token, $('.' + data.name).val());

我需要这样做才能捕捉所有事件;

var token = '{IP}';

sdText = sdText.replace(/token/g, $('.' + data.name).val());

因为我需要替换textarea中可能出现多次令牌。每次迭代.each()循环时令牌的值都会发生变化,我需要为每次迭代注入正则表达式语句中的值。

有谁知道我会如何做到这一点?

谢谢

1 个答案:

答案 0 :(得分:1)

对于动态regex使用RegExp()构造函数。

var regex = new RegExp(token, 'g');

sdText = sdText.replace(regex, $('.' + data.name).val());