如何使用正则表达式匹配 HTML 中特定类名的 `` 标签?

如何使用正则表达式匹配 html 中特定类名的 `` 标签?

js 正则匹配 div 问题

问题描述:

如何使用正则表达式匹配 html 中所有 class 为 "n-item n-item-ad spread-item news-item" 的

  • 标签?

    原始正则表达式:

    var reg = new regexp("
  • class='\"n-item' n-item-ad spread-item news-item>([\s\s]*?)", "g");

    问题分析:

    给定的正则表达式无法匹配预期结果,因为:

    • 尖括号 () 是 html 中标签的开始和结束标记,但正则表达式没有转义这些字符。
    • 正则表达式中的 [^]*? 匹配非换行符的字符,而 html 标签中包含换行符。

    建议解决方案:

    使用 javascript 的 queryselector 方法,其语法如下:

    document.queryselector(selectors);

    selectors 参数是一个 css 选择器,可以轻松匹配具有特定类名的元素。对于给定的问题,使用以下 css 选择器即可:

    .n-item.n-item-ad.spread-item.news-item

    改进代码:

    var elements = document.querySelectorAll(".n-item.n-item-ad.spread-item.news-item");

    这将返回所有匹配指定类名的

  • 标签的 dom 节点列表。
  • 以上就是如何使用正则表达式匹配 HTML 中特定类名的 `` 标签?的详细内容,更多请关注其它相关文章!