Javascript的字符串是不可變的,String類的全部方法不會改變某個字符串的原始值,而是返回一個新的字符串。es6
var s = 'hello, world';
s.length // 12
string.charAt(index)數組
取得字符串指定索引所在的字符
若是索引再也不0~s.length-1之間,則返回一個空串編碼
s.charAt(0) // h
在es5中字符串能夠當成只讀數組,除了使用charAt方法,也能夠使用方括號的方法訪問字符串的指定索引所在的字符。es5
s[0] // h
string.charCodeAt(index)prototype
取得字符串指定索引所在字符的Unicode編碼一個16位的整數,取值在0~65,535之間
若是索引再也不0~s.length-1之間,則返回NaNcode
s.charCodeAt(0) // 104
string.contact(s1,...)索引
鏈接一個或多個字符串,至關於「+」運算符ip
s.concat('!', '!') // hello, world!!
string.indexOf(subString);
string.indexOf(subString, start);字符串
從指定位置start處(若是沒有指定start,則從開頭開始)從前向後查找是否含有子串subString,若是有子串,則返回子串subString第一次出現時,第一個字符所在的位置,若是沒有找到子串,則返回-1.原型
s.indexOf('l') // 2 s.indexOf('l', 3) // 3
string.lastIndexOf(subString);
string.lastIndexOf(subString, start);
從指定位置start處(若是沒有指定start,則從最後開始)從後向前查找是否含有子串subString,若是有子串,則返回子串subString第一次出現時,第一個字符所在的位置,若是沒有找到子串,則返回-1.
s.lastIndexOf('l') // 10 s.lastIndexOf('l', 3) // 3
string.slice(start)
string.slice(start, end)
返回從start位置開始且包含start,到end位置但不包含end之間的全部字符,若end不指定,則返回start位置且包含start,到當前字符串結尾的全部字符。
start和end能夠爲負數,若爲負數,則從尾部開始計算,即-1表示最後一個字符,-2表示倒數第二個字符,以此類推。
s.slice(10) // rld s.slice(10, 12) // rl s.slice(-3, -1) // rl
string.substring(from)
string.substring(from, to)
返回從from位置開始且包含from,到to位置但不包含to之間的全部字符,若to不指定,則返回from位置且包含from,到當前字符串結尾的全部字符。
from, to是非負整數,若from等於to,則返回空串,若from大於to,則會交換from和to。
s.substring(10) // rld s.substring(10, 12) // rl s.substring(12, 10) // rl
string.split(delimiter)
string.split(delimiter, limit)
返回按指定分割符delimiter切分字符串建立的數組,數組最大長度爲limit,若不指定limit,則將切分整個字符串。
String.prototype.split是Array.prototype.join的反方法
'1:2:3:4:5'.split(':') // ['1','2','3','4','5'] 'hello'.split('') // ['h','e','l','l','o'] '|a|b|c|'.split('|') // ['','a','b','c',''] '|a|b||c|'.split('|') // ['','a','b','',c',''] var words = sentence.split(/\s+/) // 將句子切分爲單詞
將字符串中大寫字母所有轉換爲小寫字母
將字符串中小寫字母所有轉換爲大寫字母
去掉開頭和結尾處的空白字符
-----es6新增-----
string.includes(subString)
string.includes(subString, start)
返回布爾值,表示原字符串中是否含有指定的子字符串,第二個可選參數表示開始搜索的位置
s.includes('wor') // true s.includes('wor', 9) // false
string.startsWith(subString)
string.startsWith(subString, start)
返回布爾值,表示原字符串中是否以指定的子字符串開頭,第二個可選參數表示開始搜索的位置
s.startsWith('hello') // true s.startsWith('hello', 2) // false
見startsWith, 表示原字符串中是否以指定的子字符串結尾
string.repeat(n)
將字符串重複n次
s.repeat(2) // hello, worldhello, world
string.padStart(maxLength)
string.padStart(maxLength, str)
ES2017 引入了字符串補全長度的功能。若是某個字符串不夠指定長度,會在頭部或尾部補全。padStart()用於頭部補全,padEnd()用於尾部補全。
第一個參數是字符串補全生效的最大長度,第二個參數是用來補全的字符串,若省略,則使用空格補全長度。若是原字符串的長度,等於或大於最大長度,則字符串補全不生效,返回原字符串。
'1'.padStart(5, '0') // 00001
見padStart
消除字符串頭部的空格
消除字符串尾部的空格
String.fromCharCode(108, 111, 118, 101) // love
Array.prototype.filter.call(s, (item)=> item === 'l').join('') // lll
經過調用字符串的split方法和數組的join方法,能夠借用數組的任何方法
// 反轉字符串 '123'.split('').reverse().join('') // 321