1. 程式人生 > >js隨筆(二):JS String Method

js隨筆(二):JS String Method

String Methods and Properties

  String.length:  length()

    返回字串長度

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

  Finding a String in a String:  indexOf(str,[, index])

   在字串中找到你想要的字串,indexOf返回的位置是你搜索字串第一次出現的位置。

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");

    lastIndexOf()返回的則是你所搜尋的字串在被搜尋字串中最後一次出現的位置。

var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");

    如果indexOf()或者lastIndexOf()在被搜尋字串中沒有找到你要搜尋的字串,則返回-1.

    indexOf()或者lastIndexOf()都接受傳入第二個引數,作為查詢的開始位置

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate",15);

  Extracting String Parts

    從字串中取出一段字串,三種函式:

slice(start, end)
substring(start, end)
substr(start, length)

    start--開始位置; end--結束為止;  length--取出字串的長度

      ·slice() :

        * 取出從start位(包含start位)到end位(不包含end位)的字串

        * startend支援負數

var str = "Apple, Banana, Kiwi";
var res = str.slice(-12, -6);
Banana

        * 允許沒有第二個引數,返回的結果就是從star開始一直到最後

      ·substring()

        * substring()slice()的作用大多數相似。

        * 不同點在於,substring() 不接受負值。

var str = "Apple, Banana, Kiwi";
var res = str.substring(7, 13);
Banana

      ·substr() :

                * substr()slice()的作用類似。

        * 不同點在於,substr()的第二個引數是要取出字串的長度。

var str = "Apple, Banana, Kiwi";
var res = str.substr(7, 6);
Banana

         * 第一個引數為負,則位置從字串的末尾開始計數。

var str = "Apple, Banana, Kiwi";
var res = str.substr(-4);
Kiwi

  Replacing String Content:  replace(oldString, newString)

    replace()函式將一個字串中的值替換成另一個值。

 

str = "Good Boy!";
var n = str.replace("Good", "Bad");

 

     replace()只替換第一個匹配上的字串。

     replace()函式區分字母大小寫。大小寫不匹配的話,會替換失敗。

str = "Good Boy!";
var n = str.replace("GOOD", "Bad");

     如果想不區分大小寫的話,使用帶有/ i標誌正則表示式(不敏感)

str = "Good Boy!";
var n = str.replace(/GOOD/i, "Bad");

     如果要替換字串中所有的匹配項,則需使用/g標誌的正則表示式(全域性匹配):

str = "Good Boy Boy Boy!";
var n = str.replace(/Boy/g, "Girl");

  Converting to Upper and Lower Case:  toUpperCase()/toLowerCase()

    toUpperCase()/toLowerCase()函式將一個字串中的字母轉換成大寫/小寫:

var text1 = "Hello World!";       // String
var text2 = text1.toUpperCase();  // text2 is text1 converted to upper
var text3 = text1.toLowerCase();  // text2 is text1 converted to lower

  The concat() Method:  concat()

     concat()函式將兩個或多個字串連線起來。

var text1 = "Hello";
var text2 = "World";
var text3 = text1.concat(" ", text2);
Hello World

  String.trim()

    去掉字串兩邊的空格。

 

 

var str = "       Hello World!        ";
alert(str.trim());
Hello World

 

     IE8以下不支援trim()函式,因此trim也可以使用replace()實現:

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

     還可以在string.prototype中新增以replace()實現的trim()解決方案:

if (!String.prototype.trim) {
    String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
var str = "       Hello World!        ";
alert(str.trim());

  Extracting String Characters

    從字串中取出字元

       charAt(position)

       charCodeAt(position)

       Property access [ ]

       position -- 要取出字元的位置

      · charAt() 函式

          * 返回字串中position位置上的字元

var str = "HELLO WORLD";
str.charAt(0);            // returns H

 

      查詢為空的話,則返回 ""

      · charCodeAt()函式

          * 返回在字串中指定索引處的字元的Unicode,該方法返回UTF-16程式碼(0到65535之間的整數)。

var str = "HELLO WORLD";
str.charCodeAt(0);         // returns 72

      查詢為空的話,則會返回 32

      ·Property access [ ] 

         * 這不是一個函式,ECMAScript 5 支援使用 [ ] 來訪問字串的某一位:

var str = "HELLO WORLD";
str[0];                   // returns H

        查詢為空的話,返回只為 undefined

 

  Converting a String to an Array: split()

    通過split()函式,將字串轉化成一個列表:

var txt = "a,b,c,d,e";   // String
txt.split(",");          // Split on commas
txt.split(" ");          // Split on spaces
txt.split("|");          // Split on pipe