JavaScript 字串


JavaScript 字串用於存儲和處理文本。


JavaScript 字串

字串可以存儲一系列字元,如 "John Doe"。

字串可以是插入到引號中的任何字元。你可以使用單引號或雙引號:

實例

var carname = "Volvo XC60";
var carname = 'Volvo XC60';

你可以使用索引位置來訪問字串中的每個字元:

實例

var character = carname[7];

字串的索引從 0 開始,這意味著第一個字元索引值為 [0],第二個為 [1], 以此類推。

你可以在字串中使用引號,字串中的引號不要與字串的引號相同:

實例

var answer = "It's alright";
var answer = "He is called 'Johnny'";
var answer = 'He is called "Johnny"';

你也可以在字串添加轉義字元來使用引號:

實例

var x = 'It\'s alright';
var y = "He is called \"Johnny\"";



字串長度

可以使用內置屬性 length 來計算字串的長度:

實例

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



特殊字元

在 JavaScript 中,字串寫在單引號或雙引號中。

因為這樣,以下實例 JavaScript 無法解析:

 "We are the so-called "Vikings" from the north."

字串 "We are the so-called " 被截斷。

如何解決以上的問題呢?可以使用反斜杠 (\) 來轉義 "Vikings" 字串中的雙引號,如下:

 "We are the so-called \"Vikings\" from the north."

 反斜杠是一個轉義字元。 轉義字元將特殊字元轉換為字串字元:

轉義字元 (\) 可以用於轉義撇號,換行,引號,等其他特殊字元。

下表中列舉了在字串中可以使用轉義字元轉義的特殊字元:

代碼 輸出
\' 單引號
\" 雙引號
\\ 反斜杠
\n 換行
\r 回車
\t tab(跳位字元)
\b 後退字元
\f 換頁符


字串可以是對象

通常, JavaScript 字串是原始值,可以使用字元創建: var firstName = "John"

但我們也可以使用 new 關鍵字將字串定義為一個對象: var firstName = new String("John")

實例

var x = "John";
var y = new String("John");
typeof x // 返回 String
typeof y // 返回 Object

Note 不要創建 String 對象。它會拖慢執行速度,並可能產生其他副作用:

實例

var x = "John";             
var y = new String("John");
(x === y) // 結果為 false,因為 x 是字串,y 是對象

=== 為絕對相等,即數據類型與值都必須相等。



字串屬性和方法

原始值字串,如 "John", 沒有屬性和方法(因為他們不是對象)。

原始值可以使用 JavaScript 的屬性和方法,因為 JavaScript 在執行方法和屬性時可以把原始值當作對象。

字串方法我們將在下一章節仲介紹。


字串屬性

屬性 描述
constructor 返回創建字串屬性的函數
length 返回字串的長度
prototype 允許您向對象添加屬性和方法


字串方法

更多方法實例可以參見:JavaScript String 對象

方法 描述
charAt() 返回指定索引位置的字元
charCodeAt() 返回指定索引位置字元的 Unicode 值
concat() 連接兩個或多個字串,返回連接後的字串
fromCharCode() 將 Unicode 轉換為字串
indexOf() 返回字串中檢索指定字元第一次出現的位置
lastIndexOf() 返回字串中檢索指定字元最後一次出現的位置
localeCompare() 用本地特定的順序來比較兩個字串
match() 找到一個或多個正則運算式的匹配
replace() 替換與正則運算式匹配的子串
search() 檢索與正則運算式相匹配的值
slice() 提取字串的片斷,並在新的字串中返回被提取的部分
split() 把字串分割為子字串數組
substr() 從起始索引號提取字串中指定數目的字元
substring() 提取字串中兩個指定的索引號之間的字元
toLocaleLowerCase() 根據主機的語言環境把字串轉換為小寫,只有幾種語言(如土耳其語)具有地方特有的大小寫映射
toLocaleUpperCase() 根據主機的語言環境把字串轉換為大寫,只有幾種語言(如土耳其語)具有地方特有的大小寫映射
toLowerCase() 把字串轉換為小寫
toString() 返回字串對象值
toUpperCase() 把字串轉換為大寫
trim() 移除字串首尾空白
valueOf() 返回某個字串對象的原始值