最新的Web開發教程
 

JavaScript字符串的方法


字符串方法幫助您處理字符串。


字符串的方法和屬性

原始值,比如"John Doe" ,不能有屬性或方法(因為它們不是對象)。

但是,使用JavaScript,方法和屬性也可用於基本的價值觀,因為JavaScript的執行方法和屬性時,把原始的值對象。


字符串長度

length屬性返回一個字符串的長度:

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
試一試»

在String查找字符串

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,如果沒有找到該文本。

JavaScript的計算從零位。
0是字符串中的第一個位置,1是第二,2是第三...

兩種方法都接受的第二參數作為用於搜索的起始位置。


搜索一個字符串的字符串

search()方法搜索指定值的字符串,並返回匹配的位置:

var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");
試一試»

你注意到了嗎?

這兩種方法, indexOf()search()都是平等的。

他們接受相同的參數(參數),以及它們返回相同的值。

這兩種方法都是平等的,但search()方法可以採取更加強大的搜索值。

您將了解有關正則表達式的章節中強大的搜索值。


提取部分字符串

有3種方法,用於提取字符串的一部分:

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

slice()方法

slice()中提取的字符串的一部分,並返回一個新的字符串所提取的一部分。

該方法需要兩個參數:開始索引(位置),並結束索引(位置)。

這個例子切片一個字符串的位置,從7至13位的部分內容:

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

資源的結果將是:

Banana
試一試»

如果一個參數是負的,該位置是從字符串的末尾計數。

這個例子從切片從位置-12到位置-6一個字符串的一部分:

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

資源的結果將是:

Banana
試一試»

如果省略第二個參數,該方法將切出字符串的其餘部分:

var res = str.slice(7);
試一試»

或者,從結尾開始計算:

var res = str.slice(-12);
試一試»

負位置並不在Internet Explorer 8和更早的工作。


substring()方法

substring()類似, slice()

所不同的是substring()不能接受負索引。

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

的結果res將是:

Banana
試一試»

如果省略第二個參數, substring()將切出字符串的其餘部分。


substr()方法

substr()類似, slice()

不同的是,第二個參數指定的length所提取的部分的。

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

資源的結果將是:

Banana
試一試»

如果第一個參數是負的,該位置從字符串的結束計數。

第二個參數不能為負,因為它定義的長度。

如果省略第二個參數, substr()將切出字符串的其餘部分。


更換字符串內容

replace()方法替換字符串中的另一個值指定值:

str = "Please visit Microsoft!";
var n = str.replace("Microsoft","w3ii");
試一試»

replace()方法也可以接受正則表達式作為搜索值。

默認情況下, replace()函數只替換第一個匹配。 要替換所有的匹配,請使用AG標誌正則表達式(全局匹配):

str = "Please visit Microsoft!";
var n = str.replace(/Microsoft/g,"w3ii");
試一試»

replace()方法不會改變它呼籲字符串。 它返回一個新字符串。


轉換為大寫和小寫

一個字符串轉換為大寫與toUpperCase()

var text1 = "Hello World!";       // String
var text2 = text1.toUpperCase();  // text2 is text1 converted to upper
試一試»

一個字符串轉換為小寫與toLowerCase()

var text1 = "Hello World!";       // String
var text2 = text1.toLowerCase();  // text2 is text1 converted to lower
試一試»

concat()方法

concat()連接兩個或多個字符串:

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

所述concat()方法可用於代替加算子。 這兩行做同樣的:

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

所有的字符串方法返回一個新的字符串。 他們不修改原始字符串。
形式上說:字符串是不可變的:字符串不能更改,只能更換。


提取串字符

有2個用於提取字符串中的字符安全的方法:

  • charAt(position)
  • charCodeAt(position)

charAt()方法

charAt()方法返回一個字符串指定索引(位置)處的字符:

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

charCodeAt()方法

charCodeAt()方法返回一個字符串指定索引處的字符的Unicode:

var str = "HELLO WORLD";

str.charCodeAt(0);         // returns 72
試一試»

訪問字符串作為數組是不安全

你可能已經看到了這樣的代碼,訪問字符串數組:

var str = "HELLO WORLD";

str[0];                   // returns H

這是不安全的不可預知

  • 它不會在所有的瀏覽器(而不是在IE5,IE6,IE7)
  • 它使串看起來像陣列(但他們不是)
  • str[0] = "H"並沒有給出錯誤(但不工作)

如果你想讀一個字符串數組,先將其轉換為一個數組。


將字符串轉換成數組

一個字符串可以被轉換成與數組split()方法:

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

如果省略分隔符,返回的數組將包含在指數[0]整個字符串。

如果分隔符為“”,返回的數組將是單個字符數組:

var txt = "Hello";       // String
txt.split("");           // Split in characters
試一試»

完整的字符串參考

對於一個完整的參考,請訪問我們完整的JavaScript字符串引用

引用包含所有的字符串屬性和方法的說明和示例。


自測練習用!

練習1» 練習2» 練習3» 練習4» 練習5» 練習6»