2016-10-17 15 views
0

文字列内の複数の単語を置き換える必要があります。複数の文字列変数を使用して置換

私のコードは、私は、このソリューション

({con}*5)+{wid}+{fixed_var}+{extra}+{sqft}+{len} 

を持って、このコードを使用して、この

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}+5 

私は複数の単語を置き換えるためにそれをグーグルたいです私はこれを見つける

str.replace(/X|x/g, ''); 
ここ

/gは置き換える複数のために使用され、このフォーマットで、私は、静的な単語を追加する必要がありますが、私のコードでcskuが、私は、変数

+0

何jQueryのは、あなたの質問にはありません。 – mplungjan

答えて

1

一致します正規表現を作成するための変数

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));

-2

スタンダールは交換してください使用して1回の呼び出しですべての単語を置き換えることができますどのように固定されていません関数は最初に一致するだけに変更されます。あなたはこの機能を使用することができます。

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; 
     } 
1

使用new RegExp(cksu, 'g')を使用してRegex objectを作成するには、重複するからコードを使用しますすべて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));

関連する問題