javascript - 使用正则表达式仅通过 h1 标签拆分带有 html 的字符串

标签 javascript regex

我需要从通过 ajax 获取的字符串中仅检索 h1 标记。该字符串返回使用 file_get_contents 的 php 文件的整个页面。显示外国页面。

我完美地恢复了字符串,我想用 h1 标签拆分字符串。有没有办法返回一个只有 <h1> 的数组?标签?我正在使用我基于 underscore.js 编写的过滤器,但它实际上不起作用:

var h1 = toolbelt.filter(textArr, function(element){
        return element.search('<h1') !== -1;
      });

这确实带回了所有 <h1> 的数组标签,但只有标签,我想取回所有 h1 标签的数组以及内容示例输出:

['<h1>sample text here</h1>','<h1 id="someId">Some ID here in h1</h1>]

我需要能够使用纯 vanilla javascript 来完成此操作,因为它是针对不允许使用 underscore.js 以外的库的学校项目。

谢谢!

最佳答案

使用 DOMParser :

var someHTML = '<div><h1>First</h1></div><h1>Second</h1>';

var parser = new DOMParser();
var doc = parser.parseFromString(someHTML, 'text/html');

var output = Array.prototype.slice.call(
    doc.querySelectorAll('h1')
).map(el => el.outerHTML);

console.log(output); // ["<h1>First</h1>", "<h1>Second</h1>"]

关于javascript - 使用正则表达式仅通过 h1 标签拆分带有 html 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557645/

相关文章:

javascript - 如何更改 document.getElementsByClassName 检索到的所有元素的类

java - 如何在构建时使用 maven-minify-plugin 和 YUI 压缩器压缩 java 中的 JS 和 css

javascript - 无法在 Angular 2 中从 JSON 加载数据

php - 有什么方法可以将值从 JavaScript 发送到 CodeIgniter 中的 Controller 吗?

php - 如何使用 php preg_replace 替换 HTML 标签

php - 日本/中国电子邮件地址?

java - 使用正则表达式在索引附近的未封闭组

javascript - 并行执行包含封装生成器的 Promise

regex - 帮助使用正则表达式 - 提取文本

python - 多字表达式的字符串拆分问题