字符串方法 substr() slice() substring()

字符串方法 substr() slice() substring()

substr(num1, num2)

num1 表示從 num1 位置開始截取

num2 表示截取 num2 長度的字符串,缺省時默認將字符串的末尾作爲截取結束位置

slice(num1, num2)

num1 表示從 num1 開始截取

num2 表示截取到 num2 爲止(不包括 num2 ),缺省時默認將字符串的末尾作爲截取結束位置

substring()

與 slice() 相同

參數都爲正值時

// 參數都爲正時的 demo
var str = 'hello world!'
var str1 = str.substr(3) // -> 'lo world!'
var str2 = str.slice(3) // -> 'lo world!'
var str3 = str.substring(3) // -> 'lo world!'
var str4 = str.substr(3, 7) // -> 'lo worl'
var str5 = str.slice(3, 7) // -> 'lo w'
var str6 = str.substring(3, 7) // -> 'lo w'

參數爲負值時

  • slice(num1, num2):若 num1 值爲負,num1 與需要操作的字符串長度相加作爲第一個參數值,即 num1 = num1 + str.length ;若 num2 值爲負,num2 與需要操作的字符串長度相加作爲第二個參數值,即 num2 = num2 + str.length
  • substr(num1, num2):若 num1 值爲負,num1 與需要操作的字符串長度相加作爲第一個參數值,即 num1 = num1 + str.length ;若 num2 值爲負,則第二個參數 num2 作爲 0 處理
  • substring(num1, num2):若 num1 值爲負,則第一個參數 num1 作爲 0 處理; 若 num2 值爲負,則第一個參數 num2 作爲 0 處理

總結:slice() 方法會將傳入的負值與字符串的長度相加;substr() 方法會將負的第一個參數加上字符串的長度,將負的第二個參數轉換爲 0;substring() 方法會將全部的負值參數都轉換爲 0

var str = 'hello world'
var str1 = str.substr(-3) // -> 'rld'
var str2 = str.slice(-3) // -> 'rld'
var str3 = str.substring(-3) // -> 'hello world'
var str4 = str.substr(3, -4) // -> ''
var str5 = str.slice(3, -4) // -> 'lo w'
var str6 = str.substring(3, -4) // -> 'hel'

參考《JavaScript 高級程序設計》(第3版)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章