jquery 多个字符串去重
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 多个字符串去重相关的知识,希望对你有一定的参考价值。
如题,比如字符串:
<ul>
<li>aaa<li/>
<li>bbb<li/>
<li>ccc<li/>
<li>ddd<li/>
<li>aaa<li/>
<li>bbb<li/>
<li>ccc<li/>
<li>ddd<li/>
<li>123<li/>
<li>123<li/>
</ul>
以下最终是我想保留的:
<ul>
<li>aaa<li/>
<li>bbb<li/>
<li>ccc<li/>
<li>ddd<li/>
<li>123<li/>
</ul>
这些我是用for循环出来的字符串,我想去掉其中重复的,该怎么处理?有没有大神帮帮我啊,数组去重我倒是会,可是像这种字符串去重该怎么来做呢?
var result = str.match(patten);
for(i in result) //result是从一段富文本里面提取出来的
patten.lastIndex = 0;
reslut_a = patten.exec(result[i]);
array_count = reslut_a[2].split('、');
for(j in array_count)
//我想在这里处理去重
document.write(array_count[j]);
这只是其中一小段代码,我想拿到 array_count[j] 这个之后去重,我该怎么来处理啊?
string.substring(start,end) 从string中截取一段字符串。
start:截取开始位置。
end:截取结束位置。
string.indexOf(findstr),查找指定的字符串在string中的位置
findstr:要找的字符串
var str1="aaa@hotmail.com";//要截取@到.之间的内容
var str2=str1.substring(str1.indexOf("@")+1,str1.indexOf("."));
console.log(str2);
方法2,用正则表达式
[\@]匹配@
[\.]匹配.
.匹配任意字符
+匹配前面内容一次或多次
*匹配签名内容0次或多次
()中的内容可以被替换为$1,就是我们要找的部分
$1,$2,……可以匹配正则式中(),按顺序编号第一个括号为$1,第二个位$2,以此类推
var str1="aaa@hotmail.com";//要截取@到.之间的内容
var reg=new RegExp('.*[\@]+(.*)[\.]+.*');
var str2=str1.replace(reg,"$1");
console.log(str2); 参考技术A var result = str.match(patten);
//改为这样的for循环、因为那样的有浏览器不兼容。。。
for(var i=0;i<result.length;i++)
patten.lastIndex = 0;
reslut_a = patten.exec(result[i]);
array_count = reslut_a[2].split('、');
var map=;
for(var j=0;j<array_count.length;j++)
var aj=array_count[j];
//如果map中不存在这个字符串,就输出,然后再添加
//以达到去重的效果
if(null == map[aj])
document.write(aj);
map[aj]=1;
追问
你好,我按照你说的改了下,报length of null错呢
追答那就看你自己写的代码是不是调用了null对象了。。。。。。
追问没有调用null对象,我在第一个for循环里面console.log(result)有好多个null,所以导致第一个for循环里面的result.length直接报错呢
以上是关于jquery 多个字符串去重的主要内容,如果未能解决你的问题,请参考以下文章
G1 垃圾回收器中的字符串去重 ( Java 8 Update 20 )