jquery怎麼去掉重複字串

2021-11-11 10:00:32

jquery去掉重複字串的方法:1、通過把字串分割成陣列,再對陣列操作去重;2、通過unique方法實現去重;3、通過正則匹配的方式實現去重。

本文操作環境:windows7系統、jquery1.8.1版、DELL G3電腦

jquery怎麼去掉重複字串?

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怎麼去掉重複字串的詳細內容,更多請關注TW511.COM其它相關文章!