JS заменить не работает на строку - программирование

JS заменить не работает на строку

Попытка заменить все экземпляры # в строке переменной. Он не работает, но не перенастраивает никаких ошибок.

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

question_num = 5;

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

Хеши остаются.

Не уверен, что мне не хватает?

4b9b3361

Ответ 1

.replace() возвращает новую строку (она не изменяет существующую строку), поэтому вам понадобится:

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

Вероятно, вы также должны сделать строку question_num, хотя автоматические преобразования типов, вероятно, будут обрабатывать это для вас.

Рабочий пример: http://jsfiddle.net/jfriend00/4cAz5/

FYI, в Javascript строки неизменяемы - существующая строка никогда не изменяется. Таким образом, любой метод, который производит модификацию строки (например, concat, replace, slice, substr, substring, toLowerCase, toUpperCase и т.д.)... ALWAYS возвращает новую строку.

Ответ 2

Ваш код верен. Просто добавьте значение к переменной следующим образом:

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

question_num = 5;

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