gpt4 book ai didi

javascript - 新行之前的正则表达式检查字符不起作用

转载 作者:行者123 更新时间:2023-12-03 02:26:18 25 4
gpt4 key购买 nike

我正在尝试用 html
标记替换换行符 (\n)。但如果该行以另一个 html 标记结尾,则不应发生这种情况。

像这样:

Line 1<br />
Line 2<br />
<p>Hello World</p>\n
Line 4<br />

所以我现在的问题是为什么以下正则表达式不起作用?现在,每一行都有
标记,而不仅仅是没有 <\p> 标记的行。

/(?!<.*>)\n/g

如果我不想在下一行不包含 html 标签的情况下使用 <\br> 标签,则该正则表达式可以正常工作。

/\n(?!.*<.*>)/g

最佳答案

您需要使用以下表达式的一些逻辑:

.+<[^\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);

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

关于javascript - 新行之前的正则表达式检查字符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48933878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com