substring、slice、splice、split、join、match、replace方法总结

142 阅读3分钟

js 常用的一些操作字符串和数组的方法经常容易混淆,忙里偷闲整理了一下,请看

1. substring() 方法

用法:substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法:string.substring(start,stop)

  1. 示例:
  2. let str = "0123456789"
  3. str.substring(3) // 3456789 从第三位开始截取,如果第二个参数忽略则截取到字符串末尾
  4. str.substring(3,7) // 3456 前包括后不包括
  5. 提示:substring 不支持负数,如果是负数会输出原字符串

2. substr() 方法

用法: substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。
提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用
注意: ECMAscript 没有对该方法进行标准化,因此反对使用它
语法:string.substr(start, length)

  1. 示例:
  2. let str = "0123456789"
  3. str.substr(0) // 0 输入0会原字符串输出
  4. str.substr(3)) // 3456789
  5. str.substr(-3) // 789
  6. str.substr(3,5) // 34567
  7. str.substr(3,6) // 345678 从第三位截取,截取6位字符 (第二位参数不支持负数)

3. slice() 方法

用法:slice() 方法可从已有的数组中返回选定的元素。
           slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
语法:array.slice(start,end)

  1. 示例:
  2. let arr = ["one", "two", "three","four", "five"]
  3. arr.slice(1,3) // ["two","three"]
  4. arr.slice(0, -1) // ["one", "two", "three","four"] ( 去掉最后一位 )
  5. let str = "0123456789"
  6. str.slice(0) // 原字符串输出
  7. str.slice(3) // 345678 从第三位开始截取,如果第二个参数忽略则截取到字符串末尾
  8. str.slice(3,6) // 345
  9. str.slice(-3) // 789
  10. str.slice(0,-3) // 0123456 ( 截取后三位 )
  11. 提示:数组和字符串处理结果一致

4. splice() 方法

用法:splice() 方法用于添加或删除数组中的元素。
注意:这种方法会改变原始数组。
语法:array.splice(index,howmany,item1,...itemX)

  1. 示例:
  2. let arr = ["one", "two", "three","four", "five"]
  3. arr.splice(2,1) // ["three"] (从第二个删除,删除1个元素)
  4. console.log(arr) // ["one","two","four","five"] (原数组返回值)
  5. arr.splice(2,1,"hello","world") // ["three"]
  6. console.log(arr) // ["one", "two", "hello", "world", "four", "five"]
  7. 注意:splice()方法只能操作数组,不能操作字符串,否则会报错

5. split() 方法

用法:split() 方法用于把一个字符串分割成字符串数组。
语法:string.split(separator,limit)

  1. 示例:
  2. let str = "hello"
  3. str.split("") // ["h", "e", "l", "l", "o"]
  4. str.split(" ") // ["hello"]
  5. let str = "wang xin yan"
  6. str.split(" ") // ["wang", "xin", "yan"]
  7. let str = "ni hao wagn xin yan"
  8. str.split("", 3) // ["ni", "hao", "wang"]
  9. 使用一个字符作为分隔符:
  10. let str = "how are you doing today"
  11. str.split("o") // ["h","w are y","u d","ing t","day"]

6. join() 方法

用法:join() 方法用于把数组中的所有元素转换一个字符串。元素是通过指定的分隔符进行分隔的
语法:array.join()
  1. 示例:
  2. let arr = ["one","two","three"]
  3. arr.join("") // "onetwothree"
  4. arr.join("-") // "one-two-three"
  5. arr.join(",") // "one,two,three"
  6. arr.join() // "one,two,three" 默认以逗号分隔

7. match() 方法

用法:match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
语法:string.match(regexp)
  1. 示例:
  2. let str = "the rain is mainly in the plain"
  3. str.match(/ain/g) // ["ain","ain","ain"]
  4. str.match(/ain/g).length // 33处匹配字符串

8. replace() 方法

用法:replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法:string.replace(searchvalue,newvalue)

示例:
let str = "nihao wangxy"
 
str.replace(/nihao/gi,"hello")  // hello wangxy
 
提示:g 全局匹配  i是否忽略大小写
 
slice(),substr(),substring()基于子字符串创建新字符串的方法  |  slice()splice()操作数组