我有一个带有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
全局匹配,以便可以找到子字符串的每个实例
基本上,只有在括号后面紧跟换行符的情况下,我们才会删除括号内的数字。