jquery实现去除重复字符串的方法小结
来源: 阅读:1375 次 日期:2016-07-06 13:55:01
温馨提示: 小编为您整理了“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程序设计有所帮助。

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map