JS去除重复的字符串内容三种方法

例1

 代码如下 复制代码

String.prototype.repeatOpt = function () {
   var str = this + "",objStr = "";
   for (var i = 0; i < this.length; i++) {
       var s = str[i];
       var newStr = str.replace(s, '');
       var j = newStr.indexOf(s);
       if (j == -1) {
           objStr += s;
       }
   }
   return objStr;
}
alert("1,2,2,3,4,4,5,6".repeatOpt());

例2

北京A,北京A,南京B,南京B,上海,天津,天健,上海

 

 代码如下 复制代码
<script type="text/javascript">
 var str = "北京A,北京A,南京B,南京B,上海,天津,天健,上海";
 var arr = [];
 str = str.replace(/([^,]*)/g, function($0, $1, i){
  if(str.indexOf($1) == i) arr[arr.length] =  $1;
 });
 document.write(arr.join(','));
</script>

例3

 代码如下 复制代码

function filterRepeatStr(str){
var ar2 = str.split(",");
var array = new Array();
var j=0
for(var i=0;i<ar2.length;i++){
if((array == "" || array.toString().match(new RegExp(ar2[i],"g")) == null)&&ar2[i]!=""){
array[j] =ar2[i];
array.sort();
j++;
}
}
return array.toString();
}

时间: 2024-09-20 00:50:40

JS去除重复的字符串内容三种方法的相关文章

JS中动态创建元素的三种方法总结(推荐)_javascript技巧

1.动态创建元素一 document.write() 例如向页面中输出一个 li 标签 <pre class="html" name="code"><span style="font-size:12px;"><script> document.write("<li>123</li>"); </script></span> body标签中就会插入

JS去除重复并统计数量的实现方法_javascript技巧

js去除重复并统计数量方法 首先点击按钮触发事件,然后用class选择器,迭代要获取的文本(这里最好用text()方法)加入到Array()集合里.然后创建一个map{},遍历Array()集合,取一个值作为map的key,然后判断是否有值,如果没有就输入值1,如果有就累加1.最后就可以统计出重复的有多少个. for(var key in map){}为迭代方法. 这里附上文本格式,方便大家复制. jQuery("#count").on("click",functi

动态改变EnterpriseLibary数据库访问链接字符串的三种方法

使用EnterpriseLibary做数据库访问底层是我一贯的做法,除了其能兼容多种数据库,且使用其进行数据库访问,对各种数据库操作均是透明的,基本不需要对特定的数据库进行操作,编写一次操作代码,基本在各种数据库都适用.对于一些特殊的数据库,很多同行已经编写出各种各样的扩展类库,直接适用即可. 言归正传,动态改变EnterpriseLibary数据库访问链接字符串一般在使用Access数据库.Sqlite数据库等文件式的数据库比较常见,因为我们不知道客户会把程序拷贝到哪里进行使用(即使是做了安装

php去除换行(回车换行)的三种方法

 这篇文章主要介绍了php去除换行(回车换行)的三种方法,需要的朋友可以参考下  代码如下: <?php     //php 不同系统的换行   //不同系统之间换行的实现是不一样的   //linux 与unix中用 n   //MAC 用 r   //window 为了体现与linux不同 则是 rn   //所以在不同平台上 实现方法就不一样   //php 有三种方法来解决     //1.使用str_replace 来替换换行   $str = str_replace(array(&quo

SQL Server2005杂谈(4):在SQL Server2005中按列连接字符串的三种方法

本文为原创,如需转载,请注明作者和出处,谢谢! 上一篇:SQL Server2005杂谈(3):四个排名函数(row_number.rank.dense_rank和ntile)的比较 最近做一个项目,遇到一个在分组的情况下,将某一列的字段值(varchar类型)连接起来的问题,类似于sum函数对int型字段值求和. 如有一个表t_table,结构和数据如图1                                           图1     其中要按着xh字段分组,并且将每一组na

SQL Server2005杂谈(2):按列连接字符串的三种方法

本文为原创,如需转载,请注明作者和出处,谢谢! 最近做一个项目,遇到一个在分组的情况下,将某一列的字段值(varchar类型)连接起来的问题,类似于sum函数对int型字段值求和. 如有一个表t_table,结构和数据如图1                                           图1     其中要按着xh字段分组,并且将每一组name字段值连接起来.最终结果希望如图2所示              图2 表中的th字段值对于每一个xh值是唯一的,也是有限的,也就是

C#判断空字符串的三种方法

3种方法分别是: string a=""; 1.if(a=="") 2.if(a==String.Empty) 3.if(a.Length==0) 3种方法都是等效的,那么究竟那一种方法性能最高呢?本人用实验说明问题. 建立3个aspx页面(为什么用网页,主要是利用Microsoft Application Center Test ) WebForm1.aspx private void Page_Load(object sender, System.EventAr

再谈DOS批处理下格式化日期字符串的三种方法(详解)_DOS/BAT

谈到日期字符串的输出,真是让人烦. 在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以得到你要的输出:20120331-064219 可是在windows下,要想得到这个,还是需要费点功夫的. 1. 直接用字符串格式化输出 比如,如果你的机器上时间的输出是这样子的: c:\>echo %date%-%time% 2012-03-31 星期六- 6:44:02.50 那么,要想得到输出20120331- 64402,可以这样截取字符串: c:\>echo %date:

ASP.NET中把对象序列化成JSON字符串的三种方法

//方法1 //using System.Runtime.Serialization.Json; //using System.IO; //using System.Text; //using System.Text.RegularExpressions; DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(arr.GetType()); MemoryStream ms = new MemorySt