字符串其本质就是一个字符数组,所以字符串的很多方法都和数组是非常类似的
"hello" --> ["h", "e", "l", "l", "o"]
length
获取字符串的长度
let str = "hello"
str.length
字符串[索引] 获取指定位置的字符
let str = "hello"
str[1]
根据索引获取字符,可以接受负索引
let str = "hello"
console.log(str.at(0))
console.log(str.at(-1))
console.log(str.at(-2))
根据索引获取字符
不支持负数,传入负数返回的是空串
let str = "hello"
console.log(str.charAt(0))
用来连接两个或多个字符串
不会破坏原来的字符串,会生成新字符串
和
+
效果一样,推荐使用+
let str = "hello"
console.log(str.concat(" ", "world"))
let str = "hello hello how are you"
console.log(str.includes("hello"))
console.log(str.includes("ttt"))
console.log(str.includes("hello", 10))
查询字符串中是否包含某个内容,并返回下标,如果没有的话返回-1
第二个参数是查找的起始,不传默认为0
let str = "hello hello how are you"
检查一个字符串是否以指定内容开头或者结尾的
let str = "hello hello how are you"
通过在开头或者结尾添加指定的内容,使字符串保持某个长度
如果穿进去的第一个参数比
str.length
少,则不做任何操作
str = "100"
console.log(str.padStart(7, "0"))
console.log(str.padEnd(7, "0"))
使用一个新字符串替换一个指定内容
str = "hello hello how are you"
let result = str.replace("hello", "abc")
console.log(result)
str = "hello hello how are you"
result = str.replaceAll("hello", "abc")
console.log(result)
使用正则表达式替换
通过指定模式
g
可以实现全部替换
对字符串进行切片
substring会自动判断参数,如果第一个参数比第二个参数大,则会自动交换参数位置,slice不会
str = "hello hello how are you"
result = str.slice(12, 15)
result = str.slice(15, 12)
result = str.substring(12, 15)
result = str.substring(15, 12)
str.split()
:用来将一个字符串拆分为一个数组
str.join()
:用来将数组拼接为字符串
str = "abc@bcd@efg@jqk"
result = str.split("@")
result = result.join("@"")
根据正则表达式拆分
将字符串转为大写或小写
str = "abcdABCD"
result = str.toLowerCase()
result = result.toUpperCase()
str.trim()
:去除字符串的前后空格str.trimStart()
:去除开始空格str.trimEnd()
:去除结束空格str = " ab c "
str.trim()
str.trimStart()
str.trimEnd()
可以去搜索符合正则表达式的内容第一次在字符串中出现的位置
str.match()
:根据正则表达式去匹配字符串中符合要求的内容str.matchAll()
:根据正则表达式去匹配字符串中符合要求的内容(必须设置g 全局匹配),返回的是一个迭代器str.match()
可以通过设置全局模式g
来匹配所有符合的字符串,并以数组的形式返回
str.matchAll()
如果不使用全局模式的话会报错,返回的是一个迭代器,使用for-of
遍历可以打印结果