如何用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)

+0

太谢谢你了易卜拉欣它的工作! – Micka