1. 程式人生 > 實用技巧 >字串常用的API

字串常用的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(): 在字串中用一些字元替換另一些字元,或替換一個與正則表示式匹配的子串。