网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 jquery实现去除重复字符串的方法小结
内容
    这篇文章主要介绍了jquery实现去除重复字符串的方法,结合实例形式总结了三种常用的字符串去重操作技巧,需要的朋友可以参考下
    本文实例总结了jquery实现去除重复字符串的方法。分享给大家供大家参考,具体如下:
    这里总结了三种去除重复字符串的方法:
    把例子贴上,用jQuery方便些,首先要搭好环境,就是在同一目录下(同一文件夹下)保证有所使用的jquery1.8.1(如果是其他版本就在html代码中作相应改动)
    第一:
    <html>
    <head>
    <script src="jquery-1.8.1.js"></script>
    <SCRIPT LANGUAGE="JavaScript">
    $(function(){
     $('#delRepeat').click(function(){
      var str = $('#repeatValue').val();
       var strArr=str.split("");//把字符串分割成一个数组
       strArr.sort();//排序
       var result=new Array();//创建出一个结果数组
       var tempStr="";
       for(var i in strArr)
       {
         if(strArr[i] != tempStr)
         {
          result.push(strArr[i]);
          tempStr=strArr[i];
         }
         else
         {
          continue;
         }
       }
       $('#noRepeat').val(result.join(""))//把数组连成字符串并展示到页面
     })
    })
    </SCRIPT>
    </head>
    <body>
    原值<input id="repeatValue" type="text" ><input id="delRepeat" type="button" value="去重">
    <input type="text" id="noRepeat">
    </body>
    </html>
    说明:通常就是把字符串分割成数组,再对数组操作,相对来说数组的方法多些,方便些,最后再join成字符串
    关于sort()方法,之所以先对数组元素排序,就是因为可以把相同的字符归到一起,就不用再双层循环,要不然就得拿到每个元素,和剩余的逐个比对,这个sort会按照ASCII 字符顺序进行升序排列
    第二:
    <html>
    <head>
    <script src="jquery-1.8.1.js"></script>
    <SCRIPT LANGUAGE="JavaScript">
    $(function(){
     $('#delRepeat').click(function(){
      var str = $('#repeatValue').val();
       var strArr=str.split("");
       //排序
       strArr.sort();
        var result =$.unique(strArr);
       $('#noRepeat').val(result.join(""));
     })
    })
    </SCRIPT>
    </head>
    <body>
    原值<input id="repeatValue" type="text" ><input id="delRepeat" type="button" value="去重">
    <input type="text" id="noRepeat">
    </body>
    </html>
    说明,这个unique方法确实方便,但有两个缺陷:
    1、只对数组有效(直接字符串不行),并且该数组不能是数字数组,
    2、只对相邻的重复元素有效,隔开的不行。
    例如:[a,a,b,b,c,c]---unique----》[a,b,c]有效
    [a,a,b,b,c,c,a]--unique-->[a,b,c,a]元素a仍然重复,无效
    因此调用unique之前必须调用一下sort方法将其重复元素重排一下,挨在一起
    但也因为调用了sort方法,顺序给重排了如:[b,b,c,c,a,a]---unique-->[a,b,c]不是[b,c,a]
    第三:
    <html>
    <head>
    <script src="jquery-1.8.1.js"></script>
    <SCRIPT LANGUAGE="JavaScript">
    $(function(){
     $('#delRepeat').click(function(){
      var str = $('#repeatValue').val();
         var reg = /(.)(?=.*\1)/g;//预搜索方式(有的叫断言)
         var result = str.replace(reg, "");
         $('#noRepeat').val(result);
     })
    })
    </SCRIPT>
    </head>
    <body>
    原值<input id="repeatValue" type="text" value="aca" ><input id="delRepeat" type="button" value="去重">
    <input type="text" id="noRepeat">
    </body>
    </html>
    说明:
    var reg =/(.)(?=.*\1)/g;
    .匹配任意字符,但只能匹配任意字符中的一个
    (.)加上()就是将匹配的该字符存储起来供以后引用
    (?=)预搜索(也有叫断言的,也有叫预查的),指明某个字符的右侧是什么,但不包含这部分,只取这个‘某个字符'
    如:p(?=ing)     匹配字符串ping时匹配成功,但匹配到的字符是p不是ping
    (?=.*\1) 这个\1就是指的前面(.)的这个字符,之前说它被加上小括号就是被存储起来了,现在\1就是取存储的第一个(共一个)
    *匹配次数,也有人称之为量词,指出现任意次
    .*指出现任意次任意字符
    (.)(?=.*\1)指第一个匹配字符,如果右侧出现的内容中包含该字符时就匹配上该字符
     g  指globle,全局匹配模式,匹配所有字符串
    这个去重的结果其实是倒着来排序的,就是说重复字符出现在前面的都被置空了,是按一个字符从后往前出现的顺序排的
    希望本文所述对大家jQuery程序设计有所帮助。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/21 1:05:20