我正在尝试替换<br />
标记后出现的所有</h2>
标记。这就是我到目前为止所做的:
Text = Text.replace(new RegExp("</h2>(\<br \/\>.+)(.+?)", "g"), '</h2>$2');
它似乎不起作用,任何人都可以帮忙吗? (没有找到匹配项。)
测试用例:
<h2>Testing</h2><br /><br /><br />Text
要:
<h2>Testing</h2>Text
答案 0 :(得分:15)
这比你想象的要简单:
Text = Text.replace(new RegExp("</h2>(\<br \/\>)*", "g"), "</h2>");
答案 1 :(得分:5)
这可以满足您的要求:
Text = Text.replace(new RegExp("</h2>(<br />)*", "g"), '</h2>');
答案 2 :(得分:5)
如果你有jQuery踢,那么你可以安全地做到这一点,没有正则表达式:
var $dirty = $('<div>').append('<p>Where is<br>pancakes</p><h2>house?</h2><br><br>');
$dirty.find('h2 ~ br').remove();
var clean = $dirty.html();
// clean is now "<p>Where is<br>pancakes</p><h2>house?</h2>"
这也会隔离<br>
,<br/>
,<br />
,<BR>
等之间的差异。
答案 3 :(得分:3)
你还可以让它更好一点吗?使用速记正则表达式语法
Text = Text.replace(/<\/h2>(<br\s*\/>)*/g, '</h2>');