javascript字符串常用api使用汇总(二)
本文讲述所有能使用正则的字符串api
- search
- replace
- replaceAll
- split
- match
search 按正则搜索字符串
这个api使用很简单,就是搜索字符串中符合规则的字符的开头索引
const rex = /\w+/
const str = 'abc123321'
console.log(str.search(rex)) // 3
当然也是可以用字符串搜索的,字符串只能搜索固定的,正则可以规定类型,自然是比较强大的
replace、replaceAll 字符串按规则替换
const rex = /\w+/
const str = 'abc123321'
console.log(str.replace(rex, '这是数字替换后的内容')) // abc这是数字替换后的内容
// replaceAll使用需要注意的是,由于replaceAll是全局替换的,故rex需要加上全局修饰符
const rex2 = /\w+/g
const str2 = 'abc123ccb223'
console.log(str2.replaceAll(rex2, '555')) // abc555ccb555
这两个方法我在前面文章有介绍过比较详细的用法,感兴趣的可以去看看一文搞懂String的replace用法
split、match 按规则把字符串分割
split
是将字符串分割成数组
const str = 'a,b,c,d,e,f,g'
// 按照特定字符分割字符串
conosle.log(str.split(',')) // ['a', 'b', 'c', 'd', 'e', 'f', 'g']
const str2 = 'a23b4213c5433d213'
// 按照特定规则分割字符串
console.log(str.split(/\d+/)) // ['a', 'b', 'c', 'd', '']
match
则跟split
方法相反,是将按规则匹配的字符串分成数组
const str2 = 'a23b4213c5433d213'
// !注意 需要多个的一定要加全局修饰符
console.log(str2.match(/\d+/g)) // ['23', '4213', '5433', '213']
console.log(str2.match(/\d+/)) // ['23', index: 1, input: 'a23b4213c5433d213', groups: undefined]
如果没有全局修饰符就会在数组上加几个属性index
匹配的字符在原字符串的位置,input
原字符串,groups
在正则设置的组成员,
这里演示一下捕获组
const str1 = '16px'
const str2 = '16rem'
const str3 = '16rpx'
const rex = /(?<num>[0-9]+)(?<unit>[a-z]+)/
console.log(str1.match(rex).groups) // { num: '16', unit: 'px' }
console.log(str2.match(rex).groups) // { num: '16', unit: 'rem' }
console.log(str3.match(rex).groups) // { num: '16', unit: 'rpx' }
// 这就是match方法的捕获组的基本用法
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。