Javascript 仅替换第一个元素中出现的
有人能帮忙解释一下为什么这只是替换第一个LI中的“[m]”吗?其余的都是“[m]”Javascript 仅替换第一个元素中出现的,javascript,jquery,regex,Javascript,Jquery,Regex,有人能帮忙解释一下为什么这只是替换第一个LI中的“[m]”吗?其余的都是“[m]” aData[2] = "<li>1[m]</li><li>2[m]</li><li>3[m]</li>" $.html( aData[2].replace('[m]','[media]') ) aData[2]=“1[m]2[m]3[m]” $.html(数据[2]。替换(“[m]”,“[media]”) 使用正则表达式并使其成为
aData[2] = "<li>1[m]</li><li>2[m]</li><li>3[m]</li>"
$.html( aData[2].replace('[m]','[media]') )
aData[2]=“1[m] 2[m] 3[m] ”
$.html(数据[2]。替换(“[m]”,“[media]”)
使用正则表达式并使其成为全局表达式:
您需要使用正则表达式来替换javascript中的所有内容,在本例中是
$.html( aData[2].replace(/\[m\]/g,'[media]') )
你需要让它成为一个全球性的替代品
var mre = new RegExp( "[m]", "g" );
aData[2] = "<li>1[m]</li><li>2[m]</li><li>3[m]</li>";
$.html( aData[2].replace(mre,'[media]') );
var mre=newregexp(“[m]”,即“g”);
aData[2]=“1[m] 2[m] 3[m] ”;
$.html(aData[2].replace(mre,“[media]”);
Javascriptsreplace
方法仅替换第一个匹配项,除非使用正则表达式:
使用正则表达式文本
/[m]/
,而不是让字符串'[m]'
隐式转换为正则表达式。这样,您可以添加/g
(“全部替换”)标志:
尽管我应该补充一点,您实际上想要的是\[m\]
,而不是[m]
,以便您匹配文字方括号:
$.html( aData[2].replace(/\[m\]/g,'[media]') )
是的,你的不行:)。您需要删除正则表达式上的引号,使其成为正则表达式对象,而不是字符串。签入我提供的JSFIDLE。
$.html( aData[2].replace(/[m]/g,'[media]') )
$.html( aData[2].replace(/\[m\]/g,'[media]') )