在新行不工作之前正则表达式检查字符

时间:2018-02-22 17:36:51

标签: javascript regex

我正在尝试用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

1 个答案:

答案 0 :(得分:1)

您需要一些逻辑,其中包含以下表达式:

.+<[^\n\r]+>$|(.+)

JavaScript

&#13;
&#13;
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;
&#13;
&#13;

想法是匹配以潜在标记结尾的行,但捕获没有的行,请参阅a demo on regex101.com