我正在尝试用html
标签替换换行符(\ n)。但如果该行以另一个html标记结束,则不应该发生这种情况。
像这样:
Line 1<br />
Line 2<br />
<p>Hello World</p>\n
Line 4<br />
所以现在我的问题是为什么下面的正则表达式不起作用?现在在每一行上的标签不仅仅是在没有&lt; \ p&gt;的行上。标签
/(?!<.*>)\n/g
如果我不想要一个&lt; \ br&gt;那个正则表达式正在工作如果下一行不包含html标记,则标记。
/\n(?!.*<.*>)/g
答案 0 :(得分:1)
您需要一些逻辑,其中包含以下表达式:
.+<[^\n\r]+>$|(.+)
在JavaScript
:
var html = `Line 1
Line 2
<p>Hello World</p>
Line 4`;
var converted = html.replace(/.+<[^\n\r>]+>$|(.+)/gm, function(match, group1) {
if (typeof(group1) == "undefined") return match;
else return group1 + "<br>";
});
console.log(converted);
&#13;
想法是匹配以潜在标记结尾的行,但捕获没有的行,请参阅a demo on regex101.com。