作用
用于匹配字符串中符合某些規(guī)則的一種方式。
常用
驗證匹配(驗證身份證號、驗證車牌號、驗證郵箱驗證等)
截取字段(截取URL中的有效信息)
替換
先舉個栗子
// 驗證一個字串符中是否含有字符a
let str = '111111a111111'
let reg = /[a]+/ // 匹配a字符串一次或多次
reg.test(str) // true
這里test方法,就是用來驗證str是否符合該正則表達式的要求。
規(guī)范
當然了,一般我們用到的正則表達式肯定不用像上面的栗子那么簡單啦,大家看下常用的規(guī)范
- 元字符串

原字符串.png
- 限定符

限定符.png
- 標志

標志.png
- 特殊字符
[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方法 截取
// 返回匹配到的值的數(shù)組
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' 第二個參數(shù)為需要用來替換的值
這里需要注意g的全局匹配,如果不使用g,則只會替換第一個,就停止。
- split方法 分割
// 返回分隔完之后的數(shù)組
let num = '11a22'
let reg = /a/
num.split(reg) // [11,22]
參考:JS正則表達式