【问题标题】:Javascript - search for HTML elements in stringJavascript - 在字符串中搜索 HTML 元素
【发布时间】:2014-06-17 15:00:37
【问题描述】:

我有带有 html 元素的字符串。有带标题的表格。我需要找到带有特定文本标题的表格,然后将该表格作为字符串返回。

在没有任何库的情况下,用简单的 javascript 做到这一点的最佳方法是什么?

F.e.这是一个初始字符串

<table border="1"><caption><strong>First</strong></caption><tbody><tr><td>...</td></tr></tbody></table><table border="1"><caption><strong>Result</strong></caption><tbody><tr><td>...</td></tr></tbody></table><table border="1"><caption><strong>Last</strong></caption><tbody><tr><td>...</td></tr></tbody></table>

我想得到这个字符串:

<table border="1"><caption><strong>Result</strong></caption><tbody><tr><td></td></tr></tbody></table>

任何建议或算法如何有效地解决这个问题?挑战是在不使用任何第三方库的情况下使用 javascript 解决它,也无需将文本转换为 xml 或类似的东西(因为某些 html 代码的格式不正确并且会导致错误)。

【问题讨论】:

  • 然后更正生成的 HTML 以避免这些错误,然后使用 DOM 解析正确执行此操作。不要制造第二个问题以避免解决第一个问题。
  • 由于几个问题不可能,html代码是由另一个系统生成的,我只是收到这个丑陋的字符串

标签: javascript html parsing text


【解决方案1】:

我没有时间对此进行完全测试,但您可以尝试使用正则表达式和 match() 函数。假设您的表字符串在一个名为 str 的变量中,那么类似于

var res = str.match(\b<table\.\w+_</table>\b);

res 将是一个以 '' 开头的字符串匹配数组,然后您可以检查哪个字符串包含您需要的标题。

希望有帮助!

【讨论】:

  • 我使用类似的东西 (/]*>([\s\S]*?)/gm) 但你告诉我方法。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多