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相关内容可查看本站专题:《jQuery操作xml技巧总结》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》

希望本文所述对大家jQuery程序设计有所帮助。

(0)

相关推荐

  • jQuery截取指定长度字符串代码

    例子,截取字符串代码. <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery截取字符串操作---www.jb51.net</title> <script type="text/javascript"

  • jQuery对指定元素中指定字符串进行替换的方法

    本文实例讲述了jQuery对指定元素中指定字符串进行替换的方法.分享给大家供大家参考.具体如下: 这段JS代码可以将指定id的元素内容的字符串进行替换,例如西面的代码将id=content元素中的jb51字符串替换成空字符 html部分如下: <div id=content>welcome to jb51</div> jQuery部分如下: var el = $('#content'); el.html(el.html().replace(/jb51/ig, '')); 希望本文所

  • jQuery获取字符串中出现最多的数

    推荐阅读:统计jQuery中各字符串出现次数的工具 废话不多说说了,直接给大家贴js代码了. //获取字符串中出现最多的数和它一共出现多少次 var str = 'asdfssaaasasasasaa'; //定义字符串 var json = {}; //定义数组用来存储每个字符元素所对应的个数 for (var i = 0; i < str.length; i++) { //遍历字符串中所有的元素 if (!json[str.charAt(i)]) { //判断当前元素是否已经在数组中存在 s

  • jQuery实现tag便签去重效果的方法

    本文实例讲述了jQuery实现tag便签去重效果的方法.分享给大家供大家参考.具体实现方法如下: html代码如下: 复制代码 代码如下: <head> <script type="text/javascript" src="js/jQuery.js"></script>  <!--jquery引用代码--> <script type="text/javascript" src="j

  • Jquery通过JSON字符串创建JSON对象

    <html> <body> <h2>通过 JSON 字符串来创建对象</h3> <p> First Name: <span id="fname"></span><br /> Last Name: <span id="lname"></span><br /> </p> <script type="text/ja

  • JQuery设置和去除disabled属性的5种方法总结

    复制代码 代码如下: //两种方法设置disabled属性 $('#areaSelect').attr("disabled",true); $('#areaSelect').attr("disabled","disabled"); //三种方法移除disabled属性 $('#areaSelect').attr("disabled",false); $('#areaSelect').removeAttr("disab

  • jQuery.parseJSON(json)将JSON字符串转换成js对象

    概述 接受一个JSON字符串,返回解析后的对象. 传入一个畸形的JSON字符串会抛出一个异常.比如下面的都是畸形的JSON字符串: {test: 1} ( test 没有包围双引号) {'test': 1} (使用了单引号而不是双引号) 另外,如果你什么都不传入,或者一个空字符串.null或undefined,parseJSON都会返回 null . 参数 jsonString 要解析的JSON字符串 示例 描述: 解析一个JSON字符串 jQuery 代码: var str = '{"name

  • jquery如何把数组变为字符串传到服务端并处理

    jquery把数组变为字符串然后在传到服务端(jquery把数组转换成字符串后,格式如1,2,3,速度,rewr) 复制代码 代码如下: define(function(require, exports, module) { var Notify = require('common/bootstrap-notify'); module.exports = function($element) { $element.on('click', '[data-role=batch-delete]', f

  • jQuery Trim去除字符串首尾空字符的实现方法说明

    假如您的项目正在使用jQuery框架,要去除字符串首尾的空字符您当然会选择:jQuery.trim(string).如果没有用到jQuery如何简单的实现呢.之前本人曾发过一个代码小片段:Javascript去除字符串左右的空格-trim(),这个写的比较粗糙并要用到递规操作.所以很多人很不满意代码的质量,包括我在内.偶尔看了下jQuery的代码,发现非常值的我们学习. 看看它是怎么实现这个功能的吧,代码只有一句话:使用正则方法. JavaScript Trim实现代码function trim

  • jquery分割字符串的方法

    本文实例讲述了jquery分割字符串的方法.分享给大家供大家参考.具体如下: 一.问题: 返回的数据是字符串用特殊字符@分割sss@vvv,怎么返回给2个id $("#a").text(data) $("#b").text(data) 怎么让他们同时显示,分别对应字符串的2个部分 a对应sss,b对应vvv 二.解决方法: var arr = 'sss@vvv'.split('@'); $("#a").text(arr[0]); $("

  • jquery序列化表单去除指定元素示例代码

    复制代码 代码如下: <html> <head> </head> <body> <form name="form1"> <input type="hidden" name="page1" class="flau_u_ro" value="1"></input> <input type="hidden"

  • jquery $.trim()去除字符串空格的实现方法【附图例】

    jquery $.trim()去除字符串空格的实现方法[附图例] 语法 jQuery.trim()函数用于去除字符串两端的空白字符. 作用 该函数可以去除字符串开始和末尾两端的空白字符(直到遇到第一个非空白字符串为止).它会清除包括换行符.空格.制表符等常见的空白字符. 参数 如果参数str不是字符串类型,该函数将自动将其转为字符串(一般调用其toString()方法).如果参数str为null或undefined,则返回空字符串(""). 返回值 jQuery.trim()函数的返回

  • jQuery xml字符串的解析、读取及查找方法

    本文实例讲述了jQuery xml字符串的解析.读取及查找方法.分享给大家供大家参考,具体如下: xml字符串的解析 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtm

随机推荐