我正在努力学习正则表达式。我试图找到所有span标签并删除任何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);
答案 0 :(得分:3)
正则表达式非常有趣。最近我一直在玩弄它。 您想要选择span标记的开头并抓取所有存在的标记,直到标记结束。 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(。)的次数(+?)直到它到达标记的末尾(&gt;)。如果没有问号,+将采取所有的事情,而不是停止(贪婪)。不要忘记,因为你要更换,把''标签放回来!