开发者社区> 问答> 正文

求助!关于js中正则分组的问题。

代码功能是检测一个html元素中是否包含某个类,但是在使用正则的过程中我就是不理解为什么要加分组,分组的作用是什么,以及在这里是怎么去匹配的,如果没加分组会如何?
我试过了,如果不加分组,匹配是不正确的。
![screenshot](https://oss-cn-hangzhou.aliyuncs.com/yqfiles/71d1a2a7319e83040e7c171010de720ed7e953ed.png

screenshot

展开
收起
杨冬芳 2016-06-23 13:29:18 1975 0
1 条回答
写回答
取消 提交回答
  • IT从业
    function hasClass(element, cName) {
      return (' ' + element.className + ' ').indexOf(' ' + cName + ' ') > -1;
    }
    
    推荐这样写,兼容ie6+
    

    不分组,生成的正则是 s|^bbbs|$ 意思是匹配 s 或 ^bbbs 或结束这3种情况,除非你的class是空或只有bbb才能匹配。
    分组,生成的正则是 (s|^)bbb(s|$) 意思是匹配 空格或开头,然后是bbb,然后是空格或结束,这三部分组成的四种情况。

    class="bbb ccc" 是 ^bbbs 的组合匹配到的
    class="aaa bbb" 是 sbbb$ 的组合匹配到的
    class="aa bbb cc" 是 sbbbs 匹配的
    class="bbb" 是 ^bbb$ 匹配的
    2019-07-17 19:46:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载