41

文字列内の # のすべてのインスタンスを変数に置き換えようとしています。動作していませんが、エラーも返されません。

answer_form = '<textarea name="answer_#" rows="5"></textarea>'+
              '<input type="file" name="img_#" />';

question_num = 5;

answer_form.replace(/#/g, question_num); 

ハッシュは残ります。

何が足りないかわからない?

4

2 に答える 2

165

.replace()新しい文字列を返す (既存の文字列を変更しない) ため、次のものが必要になります。

answer_form = answer_form.replace(/#/g, question_num); 

question_num自動型変換はおそらくそれを処理しますが、おそらく文字列も作成する必要があります。

作業例: http://jsfiddle.net/jfriend00/4cAz5/

参考までに、Javascript では、文字列は不変です。既存の文字列は決して変更されません。したがって、文字列を変更するメソッド ( 、 、 、 、concatreplaceなどslice)substrsubstring常に新しい文字列を返します。toLowerCasetoUpperCase

于 2012-09-01T21:42:33.650 に答える
10

あなたのコードは正しいです。次のように変数に値を追加するだけです。

answer_form = '<textarea name="answer_#" rows="5"></textarea>'+
              '<input type="file" name="img_#" />';

question_num = 5;

answer_form = answer_form.replace(/#/g, question_num); 
于 2012-09-01T21:44:48.870 に答える