【js】字符串方法汇总

字符串方法 String类型为基本类型,对其的增删改查都不改变原字符串,返回一个新字符串再进行操作
提取 substring(index1,index2)
substr(start,length)
slice(start,end)
split(str)
substring(index1,index2)

let s = "Hello World" s.substring() //Hello World s.substring(5) // World s.substring(3, -5) //Hel

  • 没有参数:返回原字符串
  • 一个参数:作为起始下标,结束默认为字符串长度
  • 两个参数自动比较区分起始与结束
  • 负数:忽略或按索引0处理
  • 提取的字符串包头不包尾
substr(start,length)
let s = "Hello World" s.substr(3,1) //l s.substr(-3, 2) //rl

  • 0个参数:与substring功能一样
  • 1个参数:支持负数为起始索引
  • 两个参数:第一个为起始,第二个为长度
  • 负数start支持负数,-1为最后一个字符,length为负数时返回空字符串
slice(start,end)
let s = "Hello World" s.slice(3, -6) //lo

  • 0、1个参数与substr相同
  • 两个参数:start与end均支持负数,但end的位置不能在start前,否则返回空字符串
split(str)
let s = "Hello World" s.split() //["Hello World"] s.split('l') //["He","","o Wor","d"]

  • 将字符串转化为数组
  • 以子串或空字符串为分隔,划分为多个子串,将这些子串放入数组,并返回该数组
搜索 indexOf(str,start)
lastIndexOf(str,start)
startsWinth(str)
endsWith(str)
includes(str)
charAt(index)
charCodeAt(index)
codePointAt(index)
indexOf(str,start)
let s = "Hello World" s.indexOf() //-1 s.indexOf("l") //2 s.indexOf("l", 6) //9

  • 无参数或者不存在子串,返回-1
  • 两个参数:start为负数时忽略或默认为0,空字符串返回start
lastIndexOf(str,start)
let s = "Hello World" s.lastIndexOf("l") //9 s.lastIndexOf("l", 4) //3

  • 反向检索,返回第一个匹配的下标
  • 负数基本无法使用
startsWith(str) endsWith(str)
let s = "Hello World" s.startsWith() //false s.startsWith("") //true s.startsWith("H") //true

  • 检测是否以某子串开头或结尾,返回true/false
  • 空字符串返回true
includes(str)
let s = "Hello World" s.includes() //false s.includes("") //true s.includes("ll") //true

  • 检测是否包含子串,返回true/false
  • 空字符串返回true
charAt(index)
let s = "Hello World" s.charAt() //H s.charAt(0) //H

  • 检索字符串中某下标下的字符
  • 默认为0,负数或者超出长度返回空字符串
charCodeAt(index) codePointAt(index)
let s1 = "Hello World" s1.charCodeAt() //72 s1.charCodeAt(0) //72 let s2 = "" s.charCodeAt() //55362 s.codePointAt()//134071

  • 返回指定位置的字符的Unicode编码
  • 默认为0,负数或超出返回NaN
  • charCodeAt返回0 - 65535 两个字节
  • codePointAt能返回四个字节的码点
修改 replace(str1,str2)
toLowerCase()
toUpperCase()
trim()
trimStart()
trimEnd()
padStart(length,str)
padEnd(length,str)
normalize("NFC/NFD/NFKC/NFKD")
replace(str1,str2)
let s = "Hello World" s.replace() //Hello World s.replace("World", "JS") //Hello JS

  • 将字符串中的子串替换为其他字符串
  • str1不是原字符串的子串时,返回原字符串
toLowerCase() toUpperCase()
let s = "Hello World" s.toLowerCase() //hello world s.toUpperCase() //HELLO WORLD

  • 切换大小写
trim() trimStart() trimEnd()
let s = " Hello World " s.trim() //"Hello World" s.trimStart()//"Hello World " s.trimEnd() //" Hello World"

  • 删除两侧空格
padStart(length,str) padEnd(length,str)
let s = "Hello World" s.padStart() //Hello World s.padStart(s.length,"*") //Hello World s.padStart(s.length+2,"*") //**Hello World

  • 在字符串的开头或结尾填充字符串以达到指定长度
  • 指定长度需要大于原字符串长度
  • 当填充字符串过长,其长度与原字符串长度加和大于指定长度,则只填充一部分
normalize("NFC/NFD/NFKC/NFKD")
let s = "\u00F1" s.normalize() //n?

  • 按照指定的一种 Unicode 正规形式将当前字符串正规化,默认为NFC
拼接 【【js】字符串方法汇总】concat(str)
repeat(times)
concat(str)
let s = "Hello World" let arr = ["1", "2"] console.log(s.concat(arr)); //Hello World1,2

  • 将str拼接到s上,如果str不是字符串先转换成字符串再拼接
repeat(times)
let s = "Hello World" s.repeat() //"" s.repeat(2)//Hello WorldHello World

  • 无参数或参数为0返回空字符串
  • times为小数时,向下取整

    推荐阅读