作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将正则表达式与 HTML 标签的字符串进行匹配。更准确地说,我有例如:
var myDivs = '<div class="wrapper"><div class="header1">Header1</div></div><div class="wrapper"><div class="header2">Header2</div></div>';
/* Result */
['<div class="wrapper"><div class="header1">Header1</div></div>', '<div class="wrapper"><div class="header2">Header2</div></div>']
我想在我的 Angular2 项目上使用 RegEx 按类“wrapper”过滤此字符串 div。我没有使用 jQuery。
请提供任何帮助。
最佳答案
您不能使用正则表达式来解析 HTML(请参阅 this )。相反,您可以使用 native DOMParser像这样:
function getElements(html, selector) {
var parser = new DOMParser(); // the parser that will parse the html
var dom = parser.parseFromString(html, "text/html"); // parse the text in 'html' as html
var elems = dom.querySelectorAll(selector); // select the elements that match the CSS selector 'selector'
// return their outerHTML (elems is an array like object so map is not defined thus we have to call it in this way)
return Array.prototype.map.call(elems, function(e) {
return e.outerHTML;
});
}
var myDivs = '<div class="wrapper"><div class="header1">Header1</div></div><div class="wrapper"><div class="header2">Header2</div></div>';
console.log(getElements(myDivs, ".wrapper"));
另一种方法:(更好的方法)
您可以将 html 附加到 div,然后仅选择该 div 内的匹配元素:
function getElements(html, selector) {
var div = document.createElement("div"); // the container element
div.innerHTML = html; // set it's html to 'html'
var elems = div.querySelectorAll(selector); // select the elements that match the CSS selector 'selector'
// return their outerHTML (elems is an array like object so map is not defined thus we have to call it in this way)
return Array.prototype.map.call(elems, function(e) {
return e.outerHTML;
});
}
var myDivs = '<div class="wrapper"><div class="header1">Header1</div></div><div class="wrapper"><div class="header2">Header2</div></div>';
console.log(getElements(myDivs, ".wrapper"));
注意:选择器可以是任何内容(任何有效的 CSS Selector )。这样更加灵活。
关于JavaScript 正则表达式将 DIV 与特定类相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42079639/
现在我正在尝试实现 flash programming specification对于 PIC32MX。我正在使用 PIC32MX512L 和 PIC32MX512H。 PIC32MX512L最终必须
我是一名优秀的程序员,十分优秀!