字元串方法字元串切割slicestrObj.slice(start[,end])參數為負,將它作為length+end處理,此處length為字元串的長度。 str.slice( 2)可以取字元串後兩位substringstrObj.substring(start[,end]) ...
字元串方法
- 字元串切割
- slice
- strObj.slice(start[,end])
- 參數為負,將它作為length+end處理,此處length為字元串的長度。
- str.slice(-2)可以取字元串後兩位
- substring
- strObj.substring(start[,end])
- substring方法使用start和end兩者中的較小值作為子字元串的起始點。
- 如果start或end為NaN或者為負數,那麼將其替換為0。
- 兩個參數不確定是起始位置還是結束位置時使用
- substr
- strObj.substr(start[,length])
- 如果start為負,將它作為length+start處理,此處length為字元串的長度。
- 返回一個從指定位置開始的指定長度的子字元串。
- str.substr(-2)可以取字元串後兩位
- slice
- 字元串分割(字元串轉數組)
- split
- strObj.split([separator[,limit]])
- separator字元串或 正則表達式 對象,它標識了分隔字元串時使用的是一個還是多個字元。如果忽略該選項,返回包含整個字元串的單一元素數組。
- limit該值用來限制返回數組中的元素個數。
- var str = "AA BB CC DD EE FF";
- alert(str.split(" ",3));
- 結果:
- AA,BB,CC
- split
- 子串識別
註意:如果向 startsWith() 、 endsWith() 或 includes() 方法傳入了正則表達式而不是字元串,會拋出錯誤。而對於indexOf()和lastIndexOf()這兩個方法,它們會將正則表達式轉換為字元串並搜索它。若需要找到它們在字元串中的確切位置,則需要使用 indexOf() 和 lastIndexOf() 。- includes (es6)
- 該方法在給定文本存在於字元串中的任意位置時會返回 true ,否則返回false。
- 接受兩個參數:需要搜索的文本,以及可選的搜索起始位置索引
- startsWith (es6)
- 該方法在給定文本出現在字元串起始處時返回 true ,否則返回 false
- 接受兩個參數:需要搜索的文本,以及可選的搜索起始位置索引
- endsWith (es6)
- 該方法在給定文本出現在字元串結尾處時返回 true ,否則返回 false
- 接受兩個參數:需要搜索的文本,以及可選的搜索起始位置索引
- indexOf
- strObj.indexOf(substr[,startIndex])
- 返回String對象內第一次出現子字元串位置。沒有找到子字元串,則返回-1。
- var str = "ABCDECDFG";
- str.indexOf("CD",1); // 由1位置從左向右查找 12,23...
- 結果:2
- lastIndexOf
- strObj.lastIndexOf(substr[,startindex])
- 返回String對象中字元串最後出現的位置。沒有找到子字元串,則返回-1。
- var str = "ABCDECDFG";
- str.lastIndexOf("CD",7); // 由7位置從右向左查找 67, 56...
- 結果:5
- search
- 參數為字元串或者正則表達式
- 返回匹配的第一個字元串的位置(就算是帶g全局標誌也是返回匹配的第一個字元串的位置)
- includes (es6)
- 字元串重覆
- repeat(es6)
- 接受一個參數作為字元串的重覆次數,返回一個將初始字元串重覆指定次數的新字元串
- 參數如果是小數,會被取整(向下取整,等同floor)
console.log('na'.repeat(2.9)); // "nana" - 如果repeat的參數是負數或者Infinity,會報錯
//Uncaught RangeError: Invalid count value
console.log('na'.repeat(Infinity));
//Uncaught RangeError: Invalid count value
console.log('na'.repeat(-1)); - 如果參數是0到-1之間的小數,則等同於0,這是因為會先進行取整運算。0到-1之間的小數,取整以後等於-0,repeat視同為0
console.log('na'.repeat(-0.9)); // "" - 參數NaN等同於0
console.log('na'.repeat(NaN)); // "" - 如果repeat的參數是字元串,則會先轉換成數字
console.log('na'.repeat('na')); // ""
console.log('na'.repeat('3')); // "nanana" - 應用:縮進級別
- repeat(es6)
- 字元串補全
- padStart(es8)和padEnd(es8)
- 接受兩個參數,第一個參數用來指定字元串的最小長度,第二個參數是用來補全的字元串
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba' - 如果省略第二個參數,預設使用空格補全長度
'x'.padStart(4) // ' x'
'x'.padEnd(4) // 'x ' - 如果原字元串的長度,等於或大於指定的最小長度,則返回原字元串
'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx' - 如果用來補全的字元串與原字元串,兩者的長度之和超過了指定的最小長度,則會截去超出位數的補全字元串
'abc'.padStart(10, '0123456789')// '0123456abc' - 應用
- 補全指定位數
'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
'123456'.padStart(10, '0') // "0000123456" - 提示字元串格式
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
- 補全指定位數
- 接受兩個參數,第一個參數用來指定字元串的最小長度,第二個參數是用來補全的字元串
- padStart(es8)和padEnd(es8)