1. 程式人生 > >javaScript複習(四)String字串與String API

javaScript複習(四)String字串與String API

String: 字串

1、定義:多個字元組成的一個*只讀*的集合(陣列)

2、JavaScript內建物件:ES標準中已經定義好的,由瀏覽器廠商已經實現的物件

 共11個:String    Number   Boolean

           Array    Date     Math   RegExp

          Error  Function    Object   Global(全域性)

3、包裝型別:臨時封裝原始型別資料,提供對原始型別資料的操作方法

    ①共3種包裝型別:String       Number     Boolean(不能new)

    ②何時使用包裝型別:自動使用

    ③為什麼使用包裝型別?原始型別的資料本來沒有任何方法,當程式中使用原始型別呼叫方法時,程式會自動建立包裝型別物件封裝該資料,等函式呼叫完,包裝型別自動釋放

   ④例:var n=100;  console.log(n.toString(2));  //將n變成2進位制數輸出 輸出:1100100

    n=100是一個原始型別的值,一個值怎麼會有方法,所以原本是不能使用toString方法的,但是因為有包裝型別,程式會自動建立包裝型別物件封裝該資料,console.log(n.toString(2));變成console.log(new Number(n).toString(2));,此時就是臨時的 Number物件呼叫toString方法了

4、String API

        在陣列物件中,不改變原物件的API,字串就能用(concat  slice)

        比如:.length屬性:字元個數;都可用[i]訪問每個字元

①轉義字元:當字串的內容和程式的特殊符號衝突時,

或字串中包含功能字元時,都用\轉化字元的意義

常用   \n:換行     \t: 一次縮排Tab鍵      \":輸出 "         \\:輸出 \

例:輸出這句話:我說:"你想的真美"

console.log("我說:"你想的真美"");    // Uncaught SyntaxError: missing ) after argument list

console.log("我說:\"你想的真美\"");   // 我說:"你想的真美"

     ②大小寫轉換:將字串中所有字元都統一轉為大寫或小寫

       何時使用:當不區分大小寫時,比如:使用者名稱  驗證碼(常用)  電子郵件

       轉大寫:str=str.toUpperCase();

       轉小寫:str=str.toLowerCase();

     ③獲取指定位置的字元:3種:

       1. str[i]   //獲取倒數第二個字元 str[str.length-2]

       2. str.charAt(i)  //返回指定位置的字元獲取第二個字元  str.charAt(2)     

      3. str.charCodeAt(i)-->獲得字元的unicode號

     ④ 查詢關鍵字的位置:2種:

        1. var i=str.indexOf(kword[,starti]);

          從左向右,查詢kword首字元在字串中的下標,如果沒找到,返回-1

          starti:從starti位置開始向後查詢下一個,如果省略starti,預設從0開始找

        2. var i=str.lastIndexOf(kword[,starti])

            從starti位置開始,向左找下一個kword

     ⑤獲取子字串:3種

         1. var subStr=str.slice(starti[,endi+1]) (常用) 與陣列slice用法相同,含頭不含尾,可用負值

             pid.slice(6,-5+1);

         2. var subStr=str.substring(starti[,endi+1])  不支援負數引數

             pid.substring(6,pid.length-5+1);

        3. var subStr=str.substr(starti,取幾個);   //pid.substr(6,8)

   ⑥連線字串(一般都是用+號直接解決,簡單粗暴,很少用API)

        concat()  與陣列concat用法相同

   ⑦分隔字串:var arr=str.split("分隔符"),arr中以陣列形式儲存每段子字串

      使用場景:今後只要分段處理字串時,都要先分隔,再遍歷

      把一個單詞變成由字母組成的陣列  var chars=str.split("");

      把一段文字變成由單片語成的陣列     var chars=str.split("  ");

   ⑧ 模式匹配:按照規則查詢或替換字串中的子內容

      查詢:2種:

        1. 只能從開始位置,找第一個匹配的關鍵字

     var i=str.search(/kword/i);  ,用來僅判斷有沒有關鍵字時

            vs str.indexOf:

                search專門用於模式匹配

                indexOf不支援模式匹配

        2. 獲得所有關鍵字的內容,或個數:

            var arr=str.match(/kword/ig)

            arr中儲存了所有關鍵字的內容, arr.length表示匹配的關鍵字的個數

            *如果沒找到,返回null*,*都要先判斷是否為null,再處理!*

            *match無法獲得關鍵字的下標位置!*

      替換:var newStr=str.replace(模式,"替換內容")