ES6 之前判斷字串是否包含子串,用 indexOf 方法,ES6 新增了子串的識別方法。
以上三個方法都可以接受兩個參數,需要搜尋的字串,和可選的搜尋起始位置索引。
let string = "apple,banana,orange";
string.includes("banana"); // true
string.startsWith("apple"); // true
string.endsWith("apple"); // false
string.startsWith("banana",6) // true
注意點:
repeat():返回新的字串,表示將字串重複指定次數返回。
console.log("Hello,".repeat(2)); // "Hello,Hello,"
1、如果參數是小數,向下取整
console.log("Hello,".repeat(3.2)); // "Hello,Hello,Hello
2、如果參數是 0 至 -1 之間的小數,會進行取整運算,0 至 -1 之間的小數取整得到 -0 ,等同於 repeat 零次
console.log("Hello,".repeat(-0.5)); // ""
3、如果參數是 NaN,等同於 repeat 零次
console.log("Hello,".repeat(NaN)); // ""
4、如果參數是負數或者 Infinity ,會報錯:
console.log("Hello,".repeat(-1));
// RangeError: Invalid count value
console.log("Hello,".repeat(Infinity));
// RangeError: Invalid count value
5、如果傳入的參數是字串,則會先將字串轉化爲數位
console.log("Hello,".repeat("hh")); // ""
console.log("Hello,".repeat("2")); // "Hello,Hello,"
以上兩個方法接受兩個參數,第一個參數是指定生成的字串的最小長度,第二個參數是用來補全的字串。如果沒有指定第二個參數,預設用空格填充。
console.log("h".padStart(5,"o")); // "ooooh" console.log("h".padEnd(5,"o")); // "hoooo" console.log("h".padStart(5)); // " h"
1、如果指定的長度小於或者等於原字串的長度,則返回原字串:
console.log("hello".padStart(5,"A")); // "hello"
2、如果原字串加上補全字串長度大於指定長度,則截去超出位數的補全字串:
console.log("hello".padEnd(10,",world!")); // "hello,worl"
常用於補全位數:
console.log("123".padStart(10,"0")); // "0000000123"
trimStart():消除字串頭部的空格
trimEnd():消除尾部的空格
除了空格鍵,這兩個方法對字串頭部(或尾部)的 tab 鍵、換行符等不可見的空白符號也有效。
瀏覽器還部署了額外的兩個方法,trimLeft()
是trimStart()
的別名,trimRight()
是trimEnd()
的別名。
1、matchAll():返回一個正則表達式在當前字串的所有匹配
2、String.fromCodePoint()
ES5 提供String.fromCharCode()
方法,用於從 Unicode 碼點返回對應字元,但是這個方法不能識別碼點大於0xFFFF
的字元。ES6 提供了String.fromCodePoint()
方法,可以識別大於0xFFFF
的字元,彌補了String.fromCharCode()
方法的不足。在作用上,正好與下面 下麪的codePointAt()
方法相反。
String.fromCodePoint(0x20BB7) // "