從字符串提取一個列表


其實這一節,重點是要復習一下字符串的操作

http://www.runoob.com/jsref/jsref-obj-string.html

Q:This is a list of items: cherries,limes,oranges,apples.提取這句話中包含的項目列表。注:已(:)開始,已(.)結束。

A:提取結果:['cherries','limes','oranges','apples']

1        var sentence='This is one sentence.This is a list of items:'+
2                     'cherries,oranges,apples,bananas.That was the list of items.';
3             var start=sentence.indexOf(':');
4             var end=sentence.indexOf('.',start+1);
5             var listStr=sentence.substring(start+1,end);
6             var fruits=listStr.split(',');
7             console.log(fruits);

結果

簡單說明一下代碼中用到的方法,自己也再記一遍

indexOf()返回某個指定的字符串值在字符串中首次出現的位置。

    如果沒有匹配到字符串則返回-1

    string.indexOf('需檢索的字符串值,必須',‘字符串開始檢索的位置,合法取值范圍0到string.length-1,若省略該參數,則將從字符串的首字符開始檢索’)

    !indexOf()區分大小寫

    ! lastIndexOf()  相當於從后向前檢索

substring()用於提取字符串中介於兩個指定下標之間的字符

       !! 返回的子串包含開始處的字符,但不包含結束處的字符。

     string.substring('規定要提取的子串的第一個字符在string中的位置,必須',‘可選,比要提取的子串的最后一個字符在string中的位置多1’) 

     string.substring(from,to)   參數不可為負!!!!!若要為負使用slice

substr()在字符串中抽取從開始下標開始的指定數目的字符

      string.substr(start,length);

split()把字符串分隔成字符數組

slice(start,end)提取字符串的某個部分,並以新的字符串返回被提取的部分。(感覺和subString很像哎)

        包含start,不包含end

                     如果參數是負數,則該參數規定的是從字符串的尾部開始算起的位置,如-1指的是字符串的最后一個字符……

            

高級話題:

  分隔后得到的數組元素可能包含空白所產生的部分,如何清理元素兩端的空白字符?

方法一:  

fruits.forEach(function(elemt,index,arr){
                arr[index]=elemt.trim();
}) console.log(fruits);

trim()移除字符串首尾的空白

Array.forEach()用於調用數組的每個元素,並將元素傳遞給回調函數。

!!forEach()對於空數組是不會執行回調函數的。

  array.forEach(function(currentValue,index,arr){

  },thisValue)

 參數說明:

  currentValue  必須。當前元素

  index        可選。當前元素的索引值。

  arr       可選。當前元素所屬的數組對象。

       thisValue    可選。傳遞給函數的值一般用‘this’值。如果這個參數為空,‘undefined’會傳遞給‘this’值。

 

另外一種簡單的方法是,給split()傳遞一個正則表達式。

  var fruits=listStr.split(/\s*,\s*/);

  \s----一個單個的空白字符

  *------匹配0次或多次


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM