替换dom变量中的href值

问题描述:

var dstr='<p id="para">&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo<a href="#table1(t1)" id="ytD2F">table1</a> test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo <a href="#table2(t2)" id="ytD2F">table2</a>&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;</p>';

我必须找到所有应存在table字符串的href属性,例如:href = #table1(t1)然后我必须用括号中的字符串替换它,例如:href =t1

i have to find all href attribute in which "table" string should be present eg:href="#table1(t1)" and then i have to replace it with the string present in braces eg:href="t1"

如果我理解正确,你需要这个:

If i understand you correctly, you need this:

var re = /(#table\d+)|\((\w{1,2})(\))/g; 
var str = '<p id="para">&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo<a href="#table1(t1)" id="ytD2F">table1</a> test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo <a href="#table2(t2)" id="ytD2F">table2</a>&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;demo test&nbsp;</p>';
var subst = '$2'; 

var result = str.replace(re, subst);
console.log(result);

Regex101演示: https://regex101.com/r/uP6uY7/1

Regex101 demo: https://regex101.com/r/uP6uY7/1