我有一个字符串,一些文本(名称attr)应该用动态文本替换。例如
options[team_member][0][name]
将替换为options[team_member][1][name]
。
我做了多远:
var current = 1;
var block = jQuery('#contents').html();
var replace_str = 'options[team_member]['+(current-1)+']';
var replace_with = 'options[team_member]['+(current)+']';
/* replace only first match */
var rep_block = block.replace(replace_str,replace_with);
/* replace nothing */
// var rep_block = block.replace(/replace_str/g,replace_with);
/* replace nothing */
// var rep_block = block.replace(/(replace_str)/g,replace_with);
alert(rep_block);
请查看jsFiddle
中的完整代码我找不到如何解决这个问题的方法。请帮我。提前谢谢。
答案 0 :(得分:9)
请替换
var rep_block = block.replace(replace_str,replace_with);
带
var rep_block = block.split(replace_str).join(replace_with);
答案 1 :(得分:-1)
使用全局替换为“g”标志:/ reg_ex_here / g或新的RegExp(exp,'g')
var string = 'bla bla bla';
string.replace(/bla/g, 'ok'); // -> ok ok ok
string.replace(new RegExp('bla', 'g'), 'ok'); // -> ok ok ok
在您的代码中:
var replace_str = 'options\\[team_member\\]\\['+(current-1)+'\\]';
rep_block = block.replace(new RegExp(replace_str, 'g'), replace_with);