對於JavaScript字符串操作方法,你真的全部掌握了嗎?來看看這篇面試中常考的字符串操作大全,包含最新的ES6字符串操作方法,值得收藏哦。
一、charAt()
返回在指定位置的字符。
var str="abc"
console.log(str.charAt(0))//a
二、charCodeAt()
返回在指定的位置的字符的 Unicode 編碼。
var str="abc"
console.log(str.charCodeAt(1))//98
三、concat()
連接字符串。
var a = "abc";
var b = "def";
var c = a.concat(b);
console.log(c);//abcdef
四、indexOf()
檢索字符串。indexOf() 方法對大小寫敏感!
var str="Hello world!"
console.log(str.indexOf("Hello"))//0
console.log(str.indexOf("World"))//-1
console.log(str.indexOf("world"))///6
五、match()
match() 方法可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
var str="1 abc 2 def 3"
console.log(str.match(/\d+/g))//123
六、replace()
replace() 方法用於在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
var str="abc Def!"
console.log(str.replace(/abc/, "CBA"))//CBA Def!
七、search()
search() 方法用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。要執行忽略大小寫的檢索,請追加標誌 i。如果沒有找到任何匹配的子串,則返回 -1。
var str="abc DEF!"
console.log(str.search(/DEF/))//4
八、slice()
提取字符串的片斷,並在新的字符串中返回被提取的部分。
stringObject.slice(start,end);
start :要抽取的片斷的起始下標。如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最後一個字符,-2 指倒數第二個字符,以此類推。
end:緊接着要抽取的片段的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。如果該參數是負數,那麼它規定的是從字符串的尾部開始算起的位置。
var str="abc def ghk"
console.log(str.slice(6))//f ghk
九、split()
把字符串分割爲字符串數組。
var str="abc def ghi jkl"
console.log(str.split(" "))//["abc", "def", "ghi", "jkl"]
console.log(str.split("") )//["a", "b", "c", " ", "d", "e", "f", " ", "g", "h", "i", " ", "j", "k", "l"]
console.log(str.split(" ",3))//["abc", "def", "ghi"]
十、toLocaleLowerCase()
把字符串轉換爲小寫。
var str="ABC def!"
console.log(str.toLocaleLowerCase())//abc def!
十一、toLocaleUpperCase()
把字符串轉換爲大寫。
var str="ABC def!"
console.log(str.toLocaleUpperCase())//ABC DEF!
十二、toLowerCase()
把字符串轉換爲小寫。
var str="ABC def!"
console.log(str.toLowerCase())//abc def!
十三、toUpperCase()
把字符串轉換爲大寫。
var str="ABC def!"
console.log(str.toUpperCase())//ABC DEF!
十四、substr()
從起始索引號提取字符串中指定數目的字符。
stringObject.substr(start,length)。
start:必需。要抽取的子串的起始下標。必須是數值。如果是負數,那麼該參數聲明從字符串的尾部開始算起的位置。也就是說,-1 指字符串中最後一個字符,-2 指倒數第二個字符,以此類推。
length:可選。子串中的字符數。必須是數值。如果省略了該參數,那麼返回從 stringObject 的開始位置到結尾的字串。
var str="abc def"
console.log(str.substr(2))//c def
console.log(str.substr(2,4))// c de
十五、substring()
提取字符串中兩個指定的索引號之間的字符。
stringObject.substring(start,stop)。
start :必需。一個非負的整數,規定要提取的子串的第一個字符在 stringObject 中的位置。
stop :可選。一個非負的整數,比要提取的子串的最後一個字符在 stringObject 中的位置多 1。如果省略該參數,那麼返回的子串會一直到字符串的結尾。
var str="abc def"
console.log(str.substring(2))//c def
console.log(str.substring(2,4))// c
相同點:如果只是寫一個參數,兩者的作用都一樣:都是是截取字符串從當前下標以後直到字符串最後的字符串片段。
substr(startIndex);
substring(startIndex);
var str = '123456789';
console.log(str.substr(2)); // "3456789"
console.log(str.substring(2)) ;// "3456789"
不同點:第二個參數
substr(startIndex,lenth): 第二個參數是截取字符串的長度(從起始點截取某個長度的字符串);
substring(startIndex, endIndex): 第二個參數是截取字符串最終的下標 (截取2個位置之間的字符串,‘含頭不含尾’)。
console.log("123456789".substr(2,5)); // "34567"
console.log("123456789".substring(2,5)) ;// "345"
ES6新增的操作字符串的方法
一、codePointAt()
let s = '