3.7 字串(String)

javascript/practice 資料夾下,建立 string.html 來練習。

字串:只要是被雙引號或單引號括起來的,都是字串格式。例:"abc""1"'中文'

基本型式

除了宣告之外,也可以用 length 取得字串長度。

var my_str = "這是字串 english";

console.log(my_str);        // 這是字串 english
console.log(my_str.length); // 12

字元跳脫(Escape)

字串裡,還要用到雙引號或單引號,以下這是允許的。例:

var my_str = "這是字串 'english'";
console.log(my_str); // 這是字串 'english'

var my_str2 = '這是字串 "english"';
console.log(my_str2); // 這是字串 "english"

但這個呢?

在 console 中會看到語法錯誤:Uncaught SyntaxError: Unexpected identifier

但如果真的希望那些符號能夠跳脫原來的功用形式,視為一般文字來看待,那我們就可以使用跳脫字元的符號( \ ),來將後面緊接著的字元視為一般文字。

例 1:

例 2:將 \ 視為一般文字:

字串相關操作

indexOf()

回傳第一個遇到指定字串的位置,位置是從 0 開始,然後如果找不到,就回傳 -1

lastIndexOf()

回傳最後一個遇到指定字串的位置,位置是從 0 開始,然後如果找不到,就回傳 -1

slice()

將一個字串,取得部份字串然後回傳,然後並不會影響原字串。另可帶的參數有以下兩個:

  • 第 1 個參數:取的部份字串,位置從何處開始。

  • 第 2 個參數:取得部份字串,取到何處結束。(但不包含最後一個)

也可以只帶第 1 個參數就好,那就會直接取到最後:

可以帶負值,規則是從字串的最後面從 -1 開始算:

substring()

slice() 相同,差別在於 substring() 不能帶負值。例:

同樣地,只帶第一個參數:

substr()

slice() 相同,差別在於 substr() 的第 2 個參數,指的是要取幾個字元,例:

只帶第 1 個參數,同樣就是直接取到最後一個字元:

可帶入負值,從最後一個是 -1 開始數:

replace()

在某個字串中,找到「部份字串」,然後用「另一個字串」來「取代」。 不會影響原來的字串,而是會回傳新的字串。 只會取代第一個找到的,而且大小寫是視為不同的。例:

如果是以下(將第1個參數的 "Banana" 改成 "banana"),不會有任何取代發生,因為找不到 "banana":

如何忽略大小寫:

改成用一種正式表達式的寫法,將 "banana" 改成 /banana/i,i 是 ignore (忽略)的意思。例:

如何指定全部都要取代:

一樣用正式表達式的寫法,將 "banana" 改成 /banana/g,g 是 global (全域)的意思。例(以下同時使用 ig):

toUpperCase()

小寫英文字變成大寫,不會影響到原字串,會回傳新字串。例:

toLowerCase()

大寫英文字變成小寫,不會影響到原字串,會回傳新字串。例:

concat()

將多個字串做串接。同樣地,原字串並不會被影響,而是回傳新字串。

concat() 其實可以用 + 號會更方便。例:

trim()

如果字串的左右兩側有空格的話,就移除。例:

charAt()

回傳指定位置的文字,位置是從 0 開始。也不會影響原字串。例:

透過 split() 將字串轉陣列

後面我們會再認識到什麼是陣列。例:

Last updated