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 = place(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程序设计有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。