试图用变量替换字符串中#的所有实例。它不工作,但不会重新调整任何错误。JS替换不能在字符串上工作
answer_form = '<textarea name="answer_#" rows="5"></textarea>'+
'<input type="file" name="img_#" />';
question_num = 5;
answer_form.replace(/#/g, question_num);
哈希依然存在。
不知道我错过了什么?
试图用变量替换字符串中#的所有实例。它不工作,但不会重新调整任何错误。JS替换不能在字符串上工作
answer_form = '<textarea name="answer_#" rows="5"></textarea>'+
'<input type="file" name="img_#" />';
question_num = 5;
answer_form.replace(/#/g, question_num);
哈希依然存在。
不知道我错过了什么?
.replace()
返回一个新字符串(它不修改现有的字符串),所以你将需要:
answer_form = answer_form.replace(/#/g, question_num);
你或许也应该question_num
一个字符串,虽然汽车类型转换可能搞定你。
工作例如:http://jsfiddle.net/jfriend00/4cAz5/
仅供参考,在Javascript中,字符串是不可变的 - 现有的字符串不会被修改。因此,任何修改字符串的方法(如concat
,replace
,slice
, substr
, substring
,toLowerCase
,toUpperCase
等)总是返回一个新的字符串。
你的代码是正确的。只需将值添加到像这样的变量中:
answer_form = '<textarea name="answer_#" rows="5"></textarea>'+
'<input type="file" name="img_#" />';
question_num = 5;
answer_form = answer_form.replace(/#/g, question_num);