正则表达式

2019-05-16  本文已影响0人  陈大事_code

作用

用于匹配字符串中符合某些规则的一种方式。

常用

  1. 验证匹配(验证身份证号、验证车牌号、验证邮箱验证等)

  2. 截取字段(截取URL中的有效信息)

  3. 替换

先举个栗子

// 验证一个字串符中是否含有字符a
let str = '111111a111111'
let reg = /[a]+/   // 匹配a字符串一次或多次
reg.test(str) // true

这里test方法,就是用来验证str是否符合该正则表达式的要求。

规范

当然了,一般我们用到的正则表达式肯定不用像上面的栗子那么简单啦,大家看下常用的规范

原字符串.png 限定符.png 标志.png
[abc] // 中括号, 表示abc中任意匹配一个
[^] // 中括号加^  匹配除中括号以内的内容
\  //  反斜号,转义字符。说明:由于存在 *、+、?等特殊含义的字符,
  // 如果我们只是想单纯地匹配这些字符串怎么办,就需要用\来将他们转为正常的字符
| // 或者,竖线前后任意匹配一个
() // 小括号,完全匹配括号内部的字符,常与|合起来用

定义正则

let reg = new RegExp("\\d+") // 一般定义
let reg = new RegExp("\\d+", "g") // 全局匹配
let reg = /\d+/  // 一般定义
let reg = /\d+/g // 全局匹配

常用方法

// 返回值为boolean值
let str = '111111a111111'
let reg = /[a]+/  
reg.test(str) // true
// 返回匹配到的值的数组
let num = '11a22'
let reg = /\d+/g
num.match(reg) // [11, 22], 注意num与reg的顺序
// 返回替换之后的字符串
let num = '11a22'
let reg = /\d+/
num.replace(reg, '*') // '*a22'  第二个参数为需要用来替换的值

这里需要注意g的全局匹配,如果不使用g,则只会替换第一个,就停止。

// 返回分隔完之后的数组
let num = '11a22'
let reg = /a/
num.split(reg) // [11,22]

参考:JS正则表达式

上一篇下一篇

猜你喜欢

热点阅读