字串常用的API
獲取字串的長度`str.length` ,長度裡面包括字串之間的空格以及標點符號
let str = 'hellow world' console.log(str.length); // 列印結果為12
獲取字串給定索引位置的字元 `chartAt()`
let str = 'hellow world' console.log(str.charAt(4)); // 列印結果為o
所有字元的操作方法都不會改變原字串,會返回一個新的字串
提取字串的方法有3個:slice()、substring()、substr()
slice()接收一個引數時,表示從這個引數的位置擷取到末尾,引數為負數時從字串最後一個字元為-1數起
let str = '我是這條gai,最靚的崽' let newStr = str.slice(4) console.log(newStr);//列印結果 gai,最靚的崽 let str2 = str.slice(-3) console.log(str2); //列印結果 靚的崽
slice() 接收兩個引數時,從第一個引數的位置擷取到第二個引數的位置,但不包含第二個引數的位置,可以理解為含頭不含尾
let str = '我是這條gai,最靚的崽' let newStr = str.slice(4,8) console.log(newStr);//列印結果 gai,
substring()接收第一個引數和slice()接收第一個引數的作用是一樣的,但引數為負數時,substring()會把所有負引數的值轉換為0
let str = '我是這條gai,最靚的崽' let newStr = str.substring(-3) console.log(newStr);//列印結果 我是這條gai,最靚的崽
substring()接收兩個引數時,引數都為正數時,也是含頭不含尾,但其中一個引數為負數,就轉換為0,而且還會把兩個引數的位置調換,例如str.slice(4,-2)會調換成str.slice(0,4),當兩個引數相等時,返回值是一個空的字串
let str = '我是這條gai,最靚的崽' let newStr = str.substring(4,8) console.log(newStr);//列印結果 gai, let str2 = str.substring(4,-2) console.log(str2); //列印結果 我是這條 let str3 = str.substring(2,2) console.log(str3); // 列印結果 '' 空字串
substr()接收一個參時,無論接收的是正引數還是負引數,結果的效果和slice()接收一個引數時是一樣的
substr()接收兩個引數時是比較特別的,當兩個引數都為正數時,它從第一個正引數的索引位置開始提取,提取的元素總數為第二個正引數, 若是第二個引數為負數,那麼提取的元素總數為0個
let str = '我是這條gai,最靚的崽' let newStr = str.substr(4,5) console.log(newStr);//列印結果 gai,最 let str2 = str.substr(4,-5) console.log(str2); //列印結果 ''
concat(),用於將一個或多個字串拼接成一個新字元,但我們更常用‘+’拼接
let str = '我是這條gai,最靚的崽' let newStr = str.concat('hahahahaha') console.log(newStr);//列印結果 我是這條gai,最靚的崽hahahahaha
split():把字串分割成字串陣列
var str="AA BB CC DD"; var string1="1:2:3:4:5"; var str1=str.split("");//如果把空字串 ("")用作分割符,那麼字串的每個字元之間都會被分割 var str2=str.split(" "); //以空格為分隔符 var str3=str.split("",4); //4指定返回陣列的最大長度 var str4=string1.split(":"); console.log(str1); // ["A", "A", " ", "B", "B", " ", "C", "C", " ", "D", "D"] console.log(str2); //["AA" "BB" "CC" "DD"] console.log(str3); //["A", "A", " ", "B"] console.log(str4); // ["1", "2", "3", "4", "5"]
字串位置的方法:indexOf()、lastIndexOf() 這兩個方法從字串中搜索傳入的引數,然返回對應的索引位置(如果沒有找到,就返回-1)區別:indexOf()從字串開頭查詢,lastIndexOf從字串的末尾開始查詢
let str = 'hellow world' let indexStr = str.indexOf('o') console.log(indexStr);//列印結果 4 let lastStr = str.lastIndexOf('o') console.log(lastStr);//列印結果 8
indexOf()、lastIndexOf() 當他們有兩個引數時,第二個引數表示開始查詢的位置,indexOf()從這個位置的字元末尾開始查詢,忽略前面的字串,lastIndexOf()從這個位置向字串的開頭查詢,忽略該位置之後直接到字串末尾的字元
let str = 'hellow world' let indexStr = str.indexOf('o',6) console.log(indexStr);//列印結果 8 let lastStr = str.lastIndexOf('o',6) console.log(lastStr);//列印結果 4
我們可以通過第二個引數並迴圈呼叫indexOf()和lastIndexOf(),從而在字串中找到所有的目標子字串的位置
let str = 'If not delicate young, then delicate old' let arr = [] let pos = str.indexOf('o') while( pos > -1){ arr.push(pos) pos = str.indexOf('o',pos + 1) } console.log(arr);//列印結果 [4, 17, 37]
ES6新增了3個用於判斷字串是否包含另一個字串的方法:startsWith()、endsWith()、includes() 他們的返回值是一個布林值
第一個引數是要查詢的字串,startsWith()從字串索引0開始查詢,endsWith()從字串尾部開始查詢,includes()檢查整個字串,當查詢的元素和索引的位置相對應就返回true,否則就返回false
tirm()刪除字串前後所有空格
repeat() 這個方法接受一個整數引數,表示要將字串複製多少次,然後返回拼接所有副本的後果
字串大小寫轉換:toUpperCase()和toLowerCase()
match(): 返回所有查詢的關鍵字內容的陣列。
replace(): 在字串中用一些字元替換另一些字元,或替換一個與正則表示式匹配的子串。