我必须替换字符串中的多个单词。
我的代码就像这样
var csku = "{len}";
var value = 5;
var finalPrice = "({con}*{len})+{wid}+{fixed_var}+{extra}+{sqft}+{len}";
console.log(finalPrice.replace(csku, value));
使用此代码我得到了这个解决方案
({con}*5)+{wid}+{fixed_var}+{extra}+{sqft}+{len}
但我想要这个
({con}*5)+{wid}+{fixed_var}+{extra}+{sqft}+5
我谷歌它用一个调用替换字符串中的多个单词我找到了这个
str.replace(/X|x/g, '');
此处/
和g
用于多次替换,在此格式中我必须添加静态字,但在我的代码csku
中没有修复,所以如何替换所有单词使用变量
答案 0 :(得分:1)
使用副本中的代码使用变量
创建Regex object
var csku = "{len}";
var value = 5;
var finalPrice = "({con}*{len})+{wid}+{fixed_var}+{extra}+{sqft}+{len}";
var re = new RegExp(csku, "g");
console.log(finalPrice.replace(re, value));

答案 1 :(得分:1)
使用new RegExp(cksu, 'g')
创建一个与所有cksu
匹配的正则表达式。
new RegExp('{len}', 'g')
将返回/{len}/g
,表示所有全局匹配。
所以finalPrice.replace(new RegExp(cksu, 'g'), value)
会将cksu
的所有全局匹配替换为value
。
var csku = "{len}";
var value = 5;
var finalPrice = "({con}*{len})+{wid}+{fixed_var}+{extra}+{sqft}+{len}";
console.log(finalPrice.replace(new RegExp(csku, 'g'), value));
答案 2 :(得分:-2)
Standart替换功能改变只是第一场比赛。您可以使用此功能:
function ReplaceAll(Source, stringToFind, stringToReplace) {
var temp = Source;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
}