0

JSON からこの文字列をレンダリングします。「私は $1$ フロントエンド開発者が $3$ から $2$ で働いています」

今、私は動的なHTML入力テキストボックスに置き換えたいと思ってい$1$,$2$ます$3$.So、出力は私です

<-input textbox here> frontend developer works at <-input textbox here> from <-input textbox here>.

var str = "I am $1$ frontend developer works at $2$ from $3$";
var newStr = "";
for(var i=0;i<3;i++){
var id = '$'+i+'$';
if (str.indexOf(id) >= 0){
   newStr = str.replace(id, $.parseHTML('<div><input type="text" 
id="input-"+i/></div>'));
}

文字列置換メソッドを使用しようとしましたが、文字列に対してのみ機能するようです.javascript/jqueryを使用してこれを達成するために他の方法を使用できます

4

3 に答える 3

0
var input = "I am $1$ frontend developer works at $2$ from $3$";
var result = input.replace(/\$\d\$/g, '<div><input type="text" id="input-"+i/></div>');

結果は次のとおりです。

I am <div><input type="text" id="input-"+i/></div> frontend developer works at <div><input type="text" id="input-"+i/></div> from <div><input type="text" id="input-"+i/></div>

私が使用した正規表現は、@n0m4d によって投稿されたコメントからのものです。

于 2016-08-01T13:05:54.793 に答える
0

次のようなこともできます。

var input = "I am $1$ frontend developer works at $2$ from $3$";
var result = replaceWithInputTags(input, '$')

function replaceWithInputTags(source, templateChar){
   var sourceArgs = source.split(templateChar);

   return sourceArgs.map(function(item){
       var index = +item;
       if (isNaN(index)) return item;
       return "<input type='text' id='input-" + (index-1) + "' />";       
   }).join('');
}
于 2016-08-01T14:32:31.897 に答える