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

时间:2014-02-05 10:28:27

标签: 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 /
  4. 我尝试使用像后面这样的正则表达式,但这不是例外:

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

    对于我的尝试,我使用的是regex101.com

    提前感谢您,如果不能理解,请对不起:)

1 个答案:

答案 0 :(得分:1)

要做你想做的事,你需要编写自己的映射器。简而言之,您需要一个keywords列表,例如htmltable等,您需要通过这些列表匹配您的字符串。

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