字符串API
字符串的属性
length
字符串的长度
字符串常用方法
都不会影响原字符串
charAt(num)
获取指定位置的字符
- 返回值 —— 指定索引位置的字符
1
2
3var str = 'hello'
var ret = str.charAt(0)
console.log(ret) // 'h'
concat()
连接字符串, 作用和 + 一样
- 可以有一个或多个参数
- 返回值 —— 新字符串
1
2
3
4var str1 = 'hello'
var str2 = ' world'
var str3 = str1.concat(str2, 'hehe')
console.log(str3) // 'hello worldhehe'
indexOf()
检查一个字符串中是否含有指定字符串
- 可以指定第二个参数, 指定开始查找的位置
- 返回值 —— 指定字符串的起始索引
- 如果不含有, 则返回 -1
1
2
3
4var str = 'world'
var index = str.indexOf('wo') // 0
str.indexOf('w', 5) // -1,没找到
- 如果不含有, 则返回 -1
includes()
判断一个字符串是否包含另一个字符
- 区分大小写
- 返回值 —— true / false
1
2var str = 'hello'
str.includes('he') // true
slice()
截取字符串
- 包含开始索引, 不包含结束索引
- 如果省略第二个参数, 则截取到结尾
- 负数表示从后开始计算
- 返回值 —— 截取的字符串
1
2var str = 'world'
var str2 = str.slice(1, 4) // 'orl'
substring()
截取字符串
- 包含开始索引, 不包含结束索引
- 不能接收负值做参数,
- 如果传递了负数, 默认使用 0, 还会调整参数的位置( 如果第二个参数比第一个小,则自动交换位置 )
- 返回值 —— 截取的字符串
1
2
3
4var str = 'hello'
str.substring(1, 4) // ell
str.substring(1, -1) // 相当于 str.substring(0, 1) // h
substr()
截取字符串
- 第一个参数表示开始索引,第二个参数表示截取个数
- 返回值 —— 截取的字符串
1
str.substr(0, 2)
toUpperCase()
转大写
- 返回值 —— 新的字符串
toLowerCase()
转小写
- 返回值 —— 新的字符串
endsWith()
判断当前字符串是否是以另外一个给定的子字符串“结尾”
- 返回值 —— true / false
1
2
3const str1 = 'Cats are the best!'
console.log(str1.endsWith('!')) // true
startsWith()
判断当前字符串是否是以另外一个给定的子字符串“开头”
- 返回值 —— true / false
trim()
删除一个字符串的两端空白
- 返回值 —— 新字符串
1
2
3
4const greeting = ' Hello world! '
greeting.trim()
console.log(greeting);
// expected output: " Hello world! "
padStart()
用给定的字符串填充当前字符串,以便达到给定的长度
- 原字符串前边填充
- 返回值 —— 新的字符串
1
2
3
4
5const str1 = '5'
console.log(str1.padStart(2, '0')) // "05"
var m = dt.getMinutes().toString().padStart(2, '0')
padEnd()
用给定的字符串填充当前字符串,以便达到给定的长度
- 原字符串后边填充
- 返回值 —— 新的字符串
可以传递正则表达式作为参数的方法
split()
将字符串 拆分为一个字符串数组
- 需要一个字符串(或正则)作为参数
- 如果传递一个空串, 则将字符串的每一个字符作为数组的元素
- 如果传递一个正则,不需要指定全局模式
- 返回值 —— 字符串数组
1
2
3
4
5
6
7var str = 'hello,world'
var arr = str.split(',')
console.log(arr) // ['hello', 'world']
var str = '1a2b3c4d5e6f7'
var result = str.split(/[A-z]/) // 按字母拆分 str
console.log(result) // [1, 2, 3, 4, 5, 6, 7]
replace()
用新的字符串替换部分符合条件的字符
- 第一个参数可以是字符串,也可以是正则表达式
- 返回值 —— 新字符串
1
2
3
4
5
6
7var str = '你好漂亮漂亮'
var str1 = str.replace(/漂亮/g, '丑')
console.log(str1) // '你好丑丑'
var str3 = '1a2b3c'
var str4 = str3.replace(/[A-z]/g, '') // 去掉字符串中的字母
console.log(str4) // 123
replaceAll()
替换所有
- 如果参数为正则,必须指定全局模式
- 返回值 —— 新字符串
search()
查询符合正则的字符的索引
- 不能指定全局模式
- 返回值 —— 第一个匹配的索引
1
2
3var str = 'abcdefg'
var ret = str.search(/a[bef]c/) // 搜索字符串中是否含有 abc 或者 aec 或 afc
console.log(ret) // 0
match()
根据正则表达式将字符串中符合条件的内容 提取 出来
- 默认情况下, match 只会找到第一个符合要求的内容, 找到以后就停止检索
- 返回值 —— 数组
1
2
3var str = '1a2b3c'
var ret = str.match(/[A-z]/ig) //(全局找字母, 忽略大小写)
console.log(ret) // [a, b, c]
字符串常见算法
将 - 划线字符串转驼峰字符串
1 | function toCamelStr(str) { |