2016-05-27 4 views
1

私はvar str = 'Foo faa {{Question14}} {{Question23}}'のような文字列を持っています。今度は、strで何らかの操作を行うことによって、部分文字列{{Question14}}{{Question23}}を得たいと思います。数字部分は、strの部分文字列では可変です。これらの部分文字列をそれぞれのidに置き換える必要があります。どうやってやるの?サブスクリプトを取得する方法javascript?

答えて

1

RegExが便利なときです。

var str = 'Foo faa {{Question14}} {{Question23}}' 
var pattern = /(\{\{[a-zA-Z0-9]+\}\})/gi; 
var matches = str.match(pattern); 

console.log(matches[0]); //{{Question14}} 
console.log(matches[1]); //{{Question23}} 
+0

/giの目的は何ですか?説明していただけますか? –

+0

@NitinAggarwal '/ g'はグローバルマッチで、'/i'は大文字と小文字を無視します。 – choz

0

あなたはこの方法でそれを行うことができ、この

var str = 'Foo faa {{Question14}} {{Question23}}'; 
 
var replacements = { 
 
    "{{Question14}}" : "Hello", 
 
    "{{Question23}}" : "Hi", 
 
}; 
 
    var output = str.replace(/{{\w+}}/g, function(match){ return replacements [match] }); 
 
    console.log(output);

1

を試してみてください。

var 
 
    str = 'Foo faa {{Question14}} {{Question23}}', 
 
    arr = str.match(/{{Question[0-9]+}}/igm); 
 

 
alert(arr[0]); // {{Question14}} 
 
alert(arr[1]); // {{Question23}}

いくつかのIDとの一致を置き換え:正規表現は、(括弧で示す)基を含む場合、各グループの 一致が最初のグループのために$ 1、$ 2 第として入手可能である

str.replace(/{{Question([0-9]+)}}/igm, "id=$1"); // "Foo faa id=14 id=23" 

、及びそうです。

関連する問題