gpt4 book ai didi

javascript - 正则表达式替换第一个元素

转载 作者:行者123 更新时间:2023-11-30 15:02:58 25 4
gpt4 key购买 nike

我需要从 <br> 中替换 HTML 字符串的内容到两个。但是我无法实现的是当我有一个标签跟随另一个标签时:

(<br\s*\/?>)

将匹配此文本中的所有标签:

var text = 'text<BR><BR>text text<BR>text;'

将匹配并替换我将拥有的

text = text.replace.replace(/(<br\s*\/?>)>/gi, "<BR\/><BR\/>")

console.log(text); //text<BR/><BR/><BR/><BR/>text text<BR/><BR/>text;"

有没有办法只用正则表达式增加一个标签?并实现这一目标:

console.log(text); //text<BR/><BR/><BR/>text text<BR/><BR/>text;"

或者我只能通过循环来实现?

最佳答案

你可以使用任何一个

var text = 'text<BR><BR>text text<BR>text;'
text = text.replace(/(<br\s*\/?>)+/gi, "$&$1");
console.log(text); // => text<BR><BR><BR>text text<BR><BR>text;

在这里,(<br\s*\/?>)+/gi匹配 <br> 的 1 个或多个序列s 以不区分大小写的方式捕获每个标签(将组中的最后一个值保留在最后一个之后,"$&$1" 将替换为整个匹配项($&)并添加最后一个 <br>$1

或者

var text = 'text<BR><BR>text text<BR>text;'
text = text.replace(/(?:<br\s*\/?>)+/gi, function ($0) {
return $0.replace(/<br\s*\/?>/gi, "<BR/>") + "<BR/>";
})
console.log(text); // => text<BR/><BR/><BR/>text text<BR/><BR/>text;

在这里,(?:<br\s*\/?>)+还将匹配 1 个或多个 <br> s 但没有捕获每次出现,并且在回调内部,所有 <br> s 将标准化为 <BR/>和一个 <BR/>将附加到结果中。

关于javascript - 正则表达式替换第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46220896/

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