溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jquery如何去掉重復(fù)字符串

發(fā)布時(shí)間:2021-11-11 09:36:30 來(lái)源:億速云 閱讀:262 作者:iii 欄目:web開(kāi)發(fā)

這篇文章主要介紹“jquery如何去掉重復(fù)字符串”,在日常操作中,相信很多人在jquery如何去掉重復(fù)字符串問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”jquery如何去掉重復(fù)字符串”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

jquery去掉重復(fù)字符串的方法:1、通過(guò)把字符串分割成數(shù)組,再對(duì)數(shù)組操作去重;2、通過(guò)unique方法實(shí)現(xiàn)去重;3、通過(guò)正則匹配的方式實(shí)現(xiàn)去重。

jquery如何去掉重復(fù)字符串

本文操作環(huán)境:windows7系統(tǒng)、jquery1.8.1版、DELL G3電腦

jquery怎么去掉重復(fù)字符串?

這里總結(jié)了三種去除重復(fù)字符串的方法:

把例子貼上,用jQuery方便些,首先要搭好環(huán)境,就是在同一目錄下(同一文件夾下)保證有所使用的jquery1.8.1(如果是其他版本就在html代碼中作相應(yīng)改動(dòng))

第一:

<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("");//把字符串分割成一個(gè)數(shù)組
   strArr.sort();//排序
   var result=new Array();//創(chuàng)建出一個(gè)結(jié)果數(shù)組
   var tempStr="";
   for(var i in strArr)
   {
     if(strArr[i] != tempStr)
     {
      result.push(strArr[i]);
      tempStr=strArr[i];
     }
     else
     {
      continue;
     }
   }
   $('#noRepeat').val(result.join(""))//把數(shù)組連成字符串并展示到頁(yè)面
 })
})
</SCRIPT>
</head>
<body>
原值<input id="repeatValue" type="text" ><input id="delRepeat" type="button" value="去重">
<input type="text" id="noRepeat">
</body>
</html>

說(shuō)明:通常就是把字符串分割成數(shù)組,再對(duì)數(shù)組操作,相對(duì)來(lái)說(shuō)數(shù)組的方法多些,方便些,最后再join成字符串

關(guān)于sort()方法,之所以先對(duì)數(shù)組元素排序,就是因?yàn)榭梢园严嗤淖址麣w到一起,就不用再雙層循環(huán),要不然就得拿到每個(gè)元素,和剩余的逐個(gè)比對(duì),這個(gè)sort會(huì)按照ASCII 字符順序進(jìn)行升序排列

第二:

<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>

說(shuō)明,這個(gè)unique方法確實(shí)方便,但有兩個(gè)缺陷:

1、只對(duì)數(shù)組有效(直接字符串不行),并且該數(shù)組不能是數(shù)字?jǐn)?shù)組,

2、只對(duì)相鄰的重復(fù)元素有效,隔開(kāi)的不行。

例如:[a,a,b,b,c,c]---unique----》[a,b,c]有效

[a,a,b,b,c,c,a]--unique-->[a,b,c,a]元素a仍然重復(fù),無(wú)效

因此調(diào)用unique之前必須調(diào)用一下sort方法將其重復(fù)元素重排一下,挨在一起

但也因?yàn)檎{(diào)用了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;//預(yù)搜索方式(有的叫斷言)
     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>

說(shuō)明:

var reg =/(.)(?=.*\1)/g;

.匹配任意字符,但只能匹配任意字符中的一個(gè)

(.)加上()就是將匹配的該字符存儲(chǔ)起來(lái)供以后引用

(?=)預(yù)搜索(也有叫斷言的,也有叫預(yù)查的),指明某個(gè)字符的右側(cè)是什么,但不包含這部分,只取這個(gè)‘某個(gè)字符'

如:p(?=ing)     匹配字符串ping時(shí)匹配成功,但匹配到的字符是p不是ping

(?=.*\1) 這個(gè)\1就是指的前面(.)的這個(gè)字符,之前說(shuō)它被加上小括號(hào)就是被存儲(chǔ)起來(lái)了,現(xiàn)在\1就是取存儲(chǔ)的第一個(gè)(共一個(gè))

*匹配次數(shù),也有人稱(chēng)之為量詞,指出現(xiàn)任意次

.*指出現(xiàn)任意次任意字符

(.)(?=.*\1)指第一個(gè)匹配字符,如果右側(cè)出現(xiàn)的內(nèi)容中包含該字符時(shí)就匹配上該字符

g    指globle,全局匹配模式,匹配所有字符串

這個(gè)去重的結(jié)果其實(shí)是倒著來(lái)排序的,就是說(shuō)重復(fù)字符出現(xiàn)在前面的都被置空了,是按一個(gè)字符從后往前出現(xiàn)的順序排的

到此,關(guān)于“jquery如何去掉重復(fù)字符串”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI