javascript - 使用正则表达式转换 html 文本中的字符串

标签 javascript html regex string tags

如何正确转换这样的字符串:

html attr = "value" attr2 = 'UnmatchInSubstrings' some \escapedTag content subtag subcontent /subtag br / /html

在:

<html attr = "value" attr2 = 'UnmatchInSubstrings'> some escapedTag content <subtag>subcontent</subtag> <br /> </html>

要求:

  1. 不匹配子字符串中的标签(“”和“'”中的文本)
  2. 使用字符\转义您想要作为普通文本的标签。转义标签失去了斜杠。
  3. 匹配未闭合的标签,例如 br/

我尝试过使用如下的正则表达式,但它不起作用:

/([^\\]\S+[\s[\"|\']+\s\S[\"|\']+]*)+/g

.

为了进行尝试,我使用 regex101.com

预先感谢您,如果不太容易理解,请抱歉:)

最佳答案

要做你想做的事,你需要编写自己的映射器。简而言之,您将拥有一个 keywords 的列表。 ,如html , table等,您需要通过它们来匹配您的字符串。

理想情况下,您还应该有一个堆栈,当您找到打开/关闭标签时,您可以在其中推送/弹出关键字。解析器还需要足够智能来排除转义序列以及引号内的字符串,这样您就不会以 "I know <html>" 结束。 .

关于javascript - 使用正则表达式转换 html 文本中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574625/

相关文章:

javascript - 点击每个类项目的功能

javascript - Service Worker 正在被 Workbox 缓存

javascript - VueJS 拖动元素有时会导致其粘在鼠标指针上

javascript - 如何按类、值和已选中对复选框进行排序

Java正则表达式替换双引号内的双引号

javascript - jQuery如何点击伪类元素:after

jquery - 未捕获的类型错误 : Cannot read property 'LayoutMode' of undefined

html - html表中td的相等空间

regex - VBScript 的正则表达式负回溯替代方案

javascript - 正则表达式以捕获组开始