作用
用于匹配字符串中符合某些规则的一种方式。
常用
验证匹配(验证身份证号、验证车牌号、验证邮箱验证等)
截取字段(截取URL中的有效信息)
替换
先举个栗子
// 验证一个字串符中是否含有字符a
let str = '111111a111111'
let reg = /[a]+/ // 匹配a字符串一次或多次
reg.test(str) // true
这里test方法,就是用来验证str是否符合该正则表达式的要求。
规范
当然了,一般我们用到的正则表达式肯定不用像上面的栗子那么简单啦,大家看下常用的规范
- 元字符串
- 限定符
- 标志
- 特殊字符
[abc] // 中括号, 表示abc中任意匹配一个
[^] // 中括号加^ 匹配除中括号以内的内容
\ // 反斜号,转义字符。说明:由于存在 *、+、?等特殊含义的字符,
// 如果我们只是想单纯地匹配这些字符串怎么办,就需要用\来将他们转为正常的字符
| // 或者,竖线前后任意匹配一个
() // 小括号,完全匹配括号内部的字符,常与|合起来用
定义正则
- 对象格式
let reg = new RegExp("\\d+") // 一般定义
let reg = new RegExp("\\d+", "g") // 全局匹配
- 字符串格式(常用)
let reg = /\d+/ // 一般定义
let reg = /\d+/g // 全局匹配
常用方法
- test方法,验证
// 返回值为boolean值
let str = '111111a111111'
let reg = /[a]+/
reg.test(str) // true
- match方法 截取
// 返回匹配到的值的数组
let num = '11a22'
let reg = /\d+/g
num.match(reg) // [11, 22], 注意num与reg的顺序
- replace方法 替换
// 返回替换之后的字符串
let num = '11a22'
let reg = /\d+/
num.replace(reg, '*') // '*a22' 第二个参数为需要用来替换的值
这里需要注意g的全局匹配,如果不使用g,则只会替换第一个,就停止。
- split方法 分割
// 返回分隔完之后的数组
let num = '11a22'
let reg = /a/
num.split(reg) // [11,22]
参考:JS正则表达式