jquery實(shí)現(xiàn)去除重復(fù)字符串的方法小結(jié)
本文實(shí)例總結(jié)了jquery實(shí)現(xiàn)去除重復(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ù)組連成字符串并展示到頁面 }) }) </SCRIPT> </head> <body> 原值<input id="repeatValue" type="text" ><input id="delRepeat" type="button" value="去重"> <input type="text" id="noRepeat"> </body> </html>
說明:通常就是把字符串分割成數(shù)組,再對(duì)數(shù)組操作,相對(duì)來說數(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>
說明,這個(gè)unique方法確實(shí)方便,但有兩個(gè)缺陷:
1、只對(duì)數(shù)組有效(直接字符串不行),并且該數(shù)組不能是數(shù)字?jǐn)?shù)組,
2、只對(duì)相鄰的重復(fù)元素有效,隔開的不行。
例如:[a,a,b,b,c,c]---unique----》[a,b,c]有效
[a,a,b,b,c,c,a]--unique-->[a,b,c,a]元素a仍然重復(fù),無效
因此調(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>
說明:
var reg =/(.)(?=.*\1)/g;
.匹配任意字符,但只能匹配任意字符中的一個(gè)
(.)加上()就是將匹配的該字符存儲(chǔ)起來供以后引用
(?=)預(yù)搜索(也有叫斷言的,也有叫預(yù)查的),指明某個(gè)字符的右側(cè)是什么,但不包含這部分,只取這個(gè)‘某個(gè)字符'
如:p(?=ing) 匹配字符串ping時(shí)匹配成功,但匹配到的字符是p不是ping
(?=.*\1) 這個(gè)\1就是指的前面(.)的這個(gè)字符,之前說它被加上小括號(hào)就是被存儲(chǔ)起來了,現(xiàn)在\1就是取存儲(chǔ)的第一個(gè)(共一個(gè))
*匹配次數(shù),也有人稱之為量詞,指出現(xiàn)任意次
.*指出現(xiàn)任意次任意字符
(.)(?=.*\1)指第一個(gè)匹配字符,如果右側(cè)出現(xiàn)的內(nèi)容中包含該字符時(shí)就匹配上該字符
g 指globle,全局匹配模式,匹配所有字符串
這個(gè)去重的結(jié)果其實(shí)是倒著來排序的,就是說重復(fù)字符出現(xiàn)在前面的都被置空了,是按一個(gè)字符從后往前出現(xiàn)的順序排的
另:關(guān)于去重感興趣的朋友還可以參考本站在線工具:
更多關(guān)于jQuery相關(guān)內(nèi)容可查看本站專題:《jQuery操作xml技巧總結(jié)》、《jQuery拖拽特效與技巧總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常見經(jīng)典特效匯總》、《jQuery動(dòng)畫與特效用法總結(jié)》、《jquery選擇器用法總結(jié)》及《jQuery常用插件及用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- jQuery實(shí)現(xiàn)tag便簽去重效果的方法
- jquery $.trim()去除字符串空格的實(shí)現(xiàn)方法【附圖例】
- jquery序列化表單去除指定元素示例代碼
- jQuery Trim去除字符串首尾空字符的實(shí)現(xiàn)方法說明
- JQuery設(shè)置和去除disabled屬性的5種方法總結(jié)
- jQuery xml字符串的解析、讀取及查找方法
- jQuery獲取字符串中出現(xiàn)最多的數(shù)
- jquery分割字符串的方法
- jQuery對(duì)指定元素中指定字符串進(jìn)行替換的方法
- Jquery通過JSON字符串創(chuàng)建JSON對(duì)象
- jQuery截取指定長度字符串代碼
- jQuery.parseJSON(json)將JSON字符串轉(zhuǎn)換成js對(duì)象
- jquery如何把數(shù)組變?yōu)樽址畟鞯椒?wù)端并處理
相關(guān)文章
jQuery CSS3自定義美化Checkbox實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了jQuery CSS3自定義美化Checkbox實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05jQuery實(shí)現(xiàn)點(diǎn)擊后高亮背景固定顯示的菜單效果【附demo源碼下載】
這篇文章主要介紹了jQuery實(shí)現(xiàn)點(diǎn)擊后高亮背景固定顯示的菜單效果,可實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊菜單項(xiàng)后呈現(xiàn)出鼠標(biāo)滑過一樣的背景高亮顯示效果,同時(shí)該顯示效果固定不變,需要的朋友可以參考下2016-09-09jQuery實(shí)現(xiàn)高度靈活的表單驗(yàn)證功能示例【無UI】
這篇文章主要介紹了jQuery實(shí)現(xiàn)高度靈活的表單驗(yàn)證功能,涉及jQuery正則判斷與頁面元素動(dòng)態(tài)操作相關(guān)使用技巧,需要的朋友可以參考下2020-04-04jQuery滑動(dòng)到底部加載下一頁數(shù)據(jù)的實(shí)例代碼
這篇文章主要介紹了jQuery滑動(dòng)到底部加載下一頁數(shù)據(jù)的實(shí)例代碼,需要的朋友可以參考下2017-05-05jQuery oLoader實(shí)現(xiàn)的加載圖片和頁面效果
我們使用jQuery的ajax在頁面中就像使用iframe一樣加載其他頁面內(nèi)容,今天我給大家分享一個(gè)名叫jQuery oLoader的插件,該插件還集成了oPageLoader,可以輕松實(shí)現(xiàn)加載圖片和頁面的漂亮效果。2015-03-03jQuery實(shí)現(xiàn)別踩白塊兒網(wǎng)頁版小游戲
本文主要介紹了jQuery實(shí)現(xiàn)別踩白塊兒網(wǎng)頁版小游戲的思路分析與代碼。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01Jquery iframe內(nèi)部出滾動(dòng)條
Jquery 操作頁面中iframe自動(dòng)跟隨窗口大小變化,而不出現(xiàn)滾動(dòng)條,只在iframe內(nèi)部出滾動(dòng)條2010-02-02