常見的String處理方式
雖然string是 Primitive values,合理來說不能擁有property或method,但是javascript的特性之一,就是primitive values在執行property或method時,會被視為object。
- length
取得字串長度
- indexOf("比對的字串", 從第n個index的位置開始算)
由左往右開始比對,回傳"第一個符合的字串"的"第一個字元"的"index"(從0開始),沒有比對成功就回傳-1
- lastIndexOf("比對的字串", 從第n個index的位置開始算)
由左往右開始比對,回傳"最後一個符合的字串"的"第一個字元"的"index"(從0開始),沒有比對成功就回傳-1
- search("搜尋的文字")
可用正則表達式搜尋,但不像indexOf有第二個參數
- 取出部分文字,共三個方法
- slice(start, end)
- 從字串中取出部分
- 參數可負值(IE8以前不支援)
- end值不給,就從start取到最後
- substring(start, end)
- 參數不可負值
- 其他都跟slice()一樣
- substr(start, length)
- 第二個參數是要取出的長度
- start可負值(IE8以前不支援)
- end值不給,就從start取到最後
- replace()
將特定文字代替成另一段文字
- 預設只替代找到的第一段文字
- 大小寫視為不同
- 可配合正則表達式撰寫邏輯
- 大小寫轉換
- 變大寫: toUpperCase()
- 變小寫: toLowerCase()
- concat()
字串相連,用來取代 + 號的功能,如下,這兩行處理的結果相同
e.g.
var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ", "World!");
- trim()
將字串左右的所有空白移除,IE8以前不支援
IE8以前的做法: replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')
- 取出特定字元,共三個方法
- charAt()
- 取出特定位置的字元
- 找不到值回傳""的空值
- charCodeAt()
- 取出特定位置的字元的unicode
- 字串[索引值]
- ECMAScript 5的語法,可以在字串上使用 [ ] 的符號
- IE7以前不支援
- 看起來很像陣列,但不是
- 若找不到值會回傳undefined
- 只能取值不能設值
- split(特定的符號)
以特定的符號,將字串轉換成陣列