【问题标题】:searching an html document for a certain part and replacing在 html 文档中搜索某个部分并替换
【发布时间】:2017-09-02 01:32:34
【问题描述】:

我有一个 HTML 页面,通过 javascript,我想使用正则表达式在该 HTML 页面中查找某个项目并将其替换为不同的字符串...

具体来说,此项位于 HTML 文档正文的脚本部分中

我正在使用 hls 流式传输视频..

在正文中,有一个包含该行的脚本部分

hls.loadSource('http://streaming.com/stream.m3u8');

我想使用正则表达式来查找该 m3u8 文件链接的字符串,所以基本上,任何符合模式 http://(anything).m3u8 的字符串,然后用新字符串替换它。

有谁知道使用正则表达式在整个 html 文档中搜索适合该正则表达式的字符串的好方法,然后我如何替换文档中的那个字符串?

【问题讨论】:

  • 您的 HTML 使用的是什么语言?
  • 我正在使用 node.js 和 javascript 创建一个网络服务器,并提供 HTML 页面,我想从我的主 node.js 服务器 javascript 文件中更改一个 HTML 文档

标签: javascript html regex


【解决方案1】:

您正在寻找的正则表达式可能是 ^'http://.*\.m3u8'$ 。 现在您几乎可以在任何语言中使用它并替换它。

如果你的语言是 Javascript,

str.replace(new RegExp("^'http://.*\.m3u8'$"), "myURL");

会的。您需要将 HTML 的完整内容读入str

【讨论】:

  • "dot" (.) 表示“匹配此处的任何单个字符”,但您希望将实际的 句点 匹配为整个 .m3u8 文件扩展名的一部分——所以避开点:http://.*\.m3u8
【解决方案2】:

使用 Javascript,您可以使用正则表达式通过 document.body.innerHTML 属性替换整个 HTML:

document.body.innerHTML = document.body.innerHTML.replace( new RegExp("^'http://.*\.m3u8'$"), "foo");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2012-07-01
    • 2018-12-27
    • 1970-01-01
    • 2011-01-12
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多