14

JavaScript で単純なテンプレート関数をコーディングしています。

テンプレートを正常にロードしました。コンテンツをプレースホルダーに解析する必要があるのは今です。

テンプレートの例は次のとおりです。

{{name}} is {{age}}

これらは動的であるため、理想的には正規表現を使用して、名前に基づいてプレースホルダーを一致させて置き換えたいと考えています。

{{name}} は、javascript 配列にロードされたコンテンツに置き換えられます。

data.name

data.age

これは私の正規表現です:/\{\{(.*?)\}\}/

これは正常に機能していますが、多くの検索を行った後、すべての正規表現の一致を反復する定義された方法を見つけることができません。

前もって感謝します

4

2 に答える 2

38

まずg、正規表現のフラグが必要です。これにより、一致したすべての値を置き換えるように JavaScript に指示します。メソッドに関数を指定することもできますreplace。このようなもの:

var result = str.replace(/\{\{(.*?)\}\}/g, function(match, token) {
    return data[token];
});

2 番目のパラメーターは最初のサブグループと一致します。

于 2013-06-12T00:54:39.150 に答える
12
var data = {
    name: 'zerkms',
    age: 42
};

var str = '{{name}} is {{age}}'.replace(/\{\{(.*?)\}\}/g, function(i, match) {
    return data[match];
});

console.log(str);

http://jsfiddle.net/zDJLd/

于 2013-06-12T00:53:56.063 に答える