jquery實現(xiàn)去除重復字符串的方法小結
來源:易賢網(wǎng) 閱讀:1553 次 日期:2016-07-06 13:55:01
溫馨提示:易賢網(wǎng)小編為您整理了“jquery實現(xiàn)去除重復字符串的方法小結”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了jquery實現(xiàn)去除重復字符串的方法,結合實例形式總結了三種常用的字符串去重操作技巧,需要的朋友可以參考下

本文實例總結了jquery實現(xiàn)去除重復字符串的方法。分享給大家供大家參考,具體如下:

這里總結了三種去除重復字符串的方法:

把例子貼上,用jQuery方便些,首先要搭好環(huán)境,就是在同一目錄下(同一文件夾下)保證有所使用的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("");//把字符串分割成一個數(shù)組

   strArr.sort();//排序

   var result=new Array();//創(chuàng)建出一個結果數(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ù)組,再對數(shù)組操作,相對來說數(shù)組的方法多些,方便些,最后再join成字符串

關于sort()方法,之所以先對數(shù)組元素排序,就是因為可以把相同的字符歸到一起,就不用再雙層循環(huán),要不然就得拿到每個元素,和剩余的逐個比對,這個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、只對數(shù)組有效(直接字符串不行),并且該數(shù)組不能是數(shù)字數(shù)組,

2、只對相鄰的重復元素有效,隔開的不行。

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

[a,a,b,b,c,c,a]--unique-->[a,b,c,a]元素a仍然重復,無效

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

但也因為調(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;//預搜索方式(有的叫斷言)

     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就是指的前面(.)的這個字符,之前說它被加上小括號就是被存儲起來了,現(xiàn)在\1就是取存儲的第一個(共一個)

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

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

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

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

這個去重的結果其實是倒著來排序的,就是說重復字符出現(xiàn)在前面的都被置空了,是按一個字符從后往前出現(xiàn)的順序排的

希望本文所述對大家jQuery程序設計有所幫助。

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:jquery實現(xiàn)去除重復字符串的方法小結

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)