我真的很难学习正则表达式。我试图找到所有跨度标签并删除任何 id 或类或任何其他信息并将它们从字符串中删除......并且惨败。
var str = '<span class="red" id="num1">foo</span>words<span class="blue">bar</span>';
//What I want to end up with '<span>foo</span>words<span>bar</span>';
str = str.replace(/<span+([*])+\>/g, '');
console.log(str);
最佳答案
正则表达式很有趣。我自己最近也在玩这个。 您想要选择跨度标签的开头并抓取直到标签结尾为止存在的所有内容。 JSFiddle
var str = '<span class="red" id="num1">foo</span>words<span class="blue">bar</span>';
str = str.replace(/<span.+?\>/g, '<span>');
console.log(str);
解释:.+?抓取任意 char (.) 的次数与 (+?) 的次数相同,直到到达标签末尾 (>)。如果没有问号,+ 将带走所有东西,而不是停止(贪婪)。不要忘记,因为您正在替换,所以要把 '' 标签放回去!
关于javascript 用正则表达式通配符替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35418203/