使用变量替换多个字符串

时间:2016-10-17 08:00:04

标签: javascript

我必须替换字符串中的多个单词。

我的代码就像这样

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中没有修复,所以如何替换所有单词使用变量

进行一次调用

3 个答案:

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