javascript - JS 条件正则表达式,删除两个分隔符之间字符串的不同部分

标签 javascript regex string

我有一个带有 HTML 换行符的文本字符串。有些 <br> 紧跟在两个分隔符 «...» 之间的数字后面,有些则不然。

这是字符串:

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>

我已使用以下方法some help删除了整个数字/分隔符(例如 «1»):

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

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

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

《1》

《2》一些文字

《3》

«4»更多文字

《5》

《6》更多文字

对此...

《2》一些文字

«4»更多文字

《6》更多文字

非常感谢!

最佳答案

也许我在这里忽略了一个微妙之处,如果是这样,我深表歉意。但似乎你可以用正则表达式替换:/«\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)

关于javascript - JS 条件正则表达式,删除两个分隔符之间字符串的不同部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51315724/

相关文章:

javascript - 'let' vs javascript for 循环中的 'var',这是否意味着所有使用 'var i =0' 的 for 循环实际上应该是 'let i =0'?

regex - 如何迭代正则表达式匹配组

java - 正则表达式 - 接受拉丁/ucs2 字符

ruby - 在 Ruby 中解析 URL 字符串

JavaScript : for loop array undefined -1 index

javascript - JavaScript 中流动函数的最佳实践

javascript - 如何在 setTimeout 参数中包含 'this' 关键字?

javascript - 获取特定模式内所有单词的正则表达式 (% %)

c++ - 为什么 std::basic_string 不支持通过表达式模板进行连接?

php - 使用 PHP 的 JavaScript 文件换行符