JS条件RegEx,用于删除两个分隔符之间字符串的不同部分



我有一个带有HTML换行符的文本字符串。一些CCD_ 1紧跟在两个分隔符CCD_。

这是字符串:

var str = ("«1»<br>«2»some text<br>«3»<br>«4»more text<br>«5»<br>«6»even more text<br>");

我正在寻找一个条件正则表达式,它将删除数字和分隔符(例如«1»(以及换行符本身,而不删除字符串中的所有换行符。

因此,例如,在我的示例字符串的开头,当脚本遇到»<br>时,它将删除介于并包括左侧第一个«»<br>(例如«1»<br>(之间的所有内容。然而,它不会删除«2»some text<br>

我得到了一些帮助,使用以下方法删除了整个数字/分隔符(例如<br>0(:

var regex = new RegExp(UsedKeys.join('|'), 'g');
var nextStr = str.replace(/«[^»]*»/g, " ");

我当然希望这是有道理的。

非常清楚的是,当字符串在浏览器中呈现时,我想从此开始

«1»

«2»一些文本

«3»

«4»更多文本

«5»

«6»更多文本

到此…

«2»一些文本

«4»更多文本

«6»更多文本

非常感谢

也许我错过了一个微妙之处,如果是这样的话,我道歉。但您似乎可以用regex:/«d+»<br>/g进行替换。这将替换«&»后接<br>

var str = "«1»<br>«2»some text<br>«3»<br>«4»more text<br>«5»<br>«6»even more text<br>"
var newStr = str.replace(/«d+»<br>/g, '')
console.log(newStr)

要匹配字母和数字,可以使用w而不是d

var str = "«a»<br>«b»some text<br>«hel»<br>«4»more text<br>«5»<br>«6»even more text<br>"
var newStr = str.replace(/«w+?»<br>/g, '')
console.log(newStr)

这个片段假设括号内的输入始终是一个数字,但我认为它解决了您试图解决的问题。

const str = "«1»<br>«2»some text<br>«3»<br>«4»more text<br>«5»<br>«6»even more text<br>";
console.log(str.replace(/(«(d+)»<br>)/g, ""));

/(«(d+)»<br>)/g

«(d+)»将匹配一行中包含1个或多个数字的任何括号

如果您更喜欢匹配字母数字,您可以使用«(w+)»,或者对于包括符号在内的任何字符,您可以用«...»0

<br>将匹配换行

//g全局匹配,以便可以找到子字符串的每个实例

基本上,只有在括号后面紧跟换行符的情况下,我们才会删除括号内的数字。

相关内容

  • 没有找到相关文章

最新更新