如何用js替换html中特定属性的括号?
问题描述:
我有这样的HTML代码:如何用js替换html中特定属性的括号?
<div>
<a href="TOTO/{{CODE}}/TOTO/{{CLICK}}/{{OPEN}}" data-href="TOTO/{{CODE}}/TOTO/{{CLICK}}/{{OPEN}}">FOO1</a>
</div>
<div>
<a href="{{CODE}}/{{CLICK}}/BAR" data-href="{{CODE}}/{{CLICK}}/BAR">FOO2</a>
</div>
,我想改变{{CODE}}通过%% CODE %%和%% CLICK %%和{{CLICK}} {{OPEN}}通过%% OPEN %%,但只在属于所有div的data-href中。
我不知道如何只针对数据href。 我想这个目标括号内数据href属性:
/data-href="([^"]+)({{([^\"]*)}}+)([^"]+)"/g
但它不工作!
感谢您的帮助。
答
你可以使用一个简单的正则表达式来匹配data-href
中的任何内容。一个简单的正则表达式可以是这样的
data-href=".*?"
然后,你可以用一个循环替换所有比赛
var str = '<div><a href="TOTO/{{CODE}}/TOTO/{{CLICK}}/{{OPEN}}" data-href="TOTO/{{CODE}}/TOTO/{{CLICK}}/{{OPEN}}">FOO1</a></div><div><a href="{{CODE}}/{{CLICK}}/BAR" data-href="{{CODE}}/{{CLICK}}/BAR">FOO2</a></div>';
var myRegexp = /data-href=".*?"/g;
var match = myRegexp.exec(str);
while (match != null) {
str = str.replace(match[0], match[0].replace(/{{|}}/g, '%%'));
match = myRegexp.exec(str);
}
console.log(str)
太谢谢你了易卜拉欣它的工作! – Micka