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其它相關文章!