正则表达式获得元素className、找重复项最多的字符

1.获得元素className

HTML

1
2
3
4
5
6
7
<ul>
    <li class="box1">11111</li>
    <li>2222222</li>
    <li class="box1box2">33333333</li>
    <li>4444444</li>
    <li class="box1 box2">5555555</li>
</ul>

JS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var aLi=getByClass(document,'box1');
for (var i=0;i<aLi.length;i++) {
    aLi[i].style.background='red';
}
 
function getByClass(oParent,aClass){
    var arr=[];
    var aEle=oParent.getElementsByTagName('*');
     
    //当正则需要传参的时候,一定要用全称的写法
    var re=new RegExp('\\b'+aClass+'\\b');
    for (var i=0;i<aEle.length;i++) {
        if(re.test(aEle[i].className)){
            arr.push(aEle[i]);
        }
    }
     
    return arr;;
}

2.找重复项最多的字符 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
            //\1:重复的第一个子项
            //\2:重复的第二个子项
//          var str='abca';
////            var re=/(a)(b)(c)\1/;//true
//          var re=/(a)(b)(c)\2/;//false
//          alert(re.test(str));
 
 
//          var re=/\w\w/; //c1,ba
//          var re=/(\w)\1/; //cc,99,aa
 
            //找重复项最多的字符串
            var str='adsssssssssskfjkfjdgssssssshdksjksssssfusierk';
            var arr=str.split('');
            str=arr.sort().join('');
//          alert(str);
            var value='';
            var index=0;
             
            var re=/(\w)\1+/g;
            str.replace(re,function($0,$1){
//              alert($0);
                if(index<$0.length){
                    index=$0.length;
                    value=$1;
                }
            });
            alert('最多的字符:'+value+',重复次数:'+index);

  

posted @   carol72  阅读(613)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示