js RegExp使用

2020-10-26  本文已影响0人  Viewwei

RegExp类型支持正则表达式,他的标记符号有以下几种
1.g 表述查找字符串的全局内容,而不是找到第一个就结束
2.i 表示不区分大小写
3.m 代表多行
4.y 表示粘附模式,表示只从lastIndex开始之后的字符串
示例如下

let pattern1 = "at/g" //匹配所以的at
let pattern1 = "[bc]at/i" //匹配第一个bat 或者cat 不区分大小写
let pattern1 = "[.at/gi" //匹配以at结尾的三字符组合,忽略大小写

RegExp中所以的元字符串必须转义,用\进行转移,元字符串包括 ( [ { \ ^ $ |

普通字符串和RegExp创建的对象是一样的

let a = "[bc]at/i"
let b = new RegExp("[bc]at",i)
a和 b是一样的

RegExp实例方法
1 global 是否设置的全局标记
2 ignoreCase 是否设置了i标记
3 unicode 是否设置了 u标记
4 lastIndex: 整数,表示原字符串中下次搜素的开始位置,始终从0开始
5 muliline 是否设置了m标记
6 dotAll 是否设置了s标记
RegExp实例方法
RegExp的实例方法主要是exec()函数,该函数主要是配合捕获组使用,该方法只接收一个参数,即要应用模式的字符串,如果找到,则放回一个数组,如果没有找到则返回null,但包含两个额外的属性,index input。index是字符串匹配模式的其实位置,input是要查找的字符串

let text = "cat, bat, sat, fat"
let pattern = /.at/
let matches = pattern.exec(text)
consoloe.log(matches.index) //0
consoloe.log(matches[0]) //cat
consoloe.log(pattern.lastIndex) //0

consoloe.log(matches.index) //0
consoloe.log(matches[0]) //cat
consoloe.log(pattern.lastIndex) //0

全局g的作用

let text = "cat, bat, sat, fat"
let pattern = /.at/g
let matches = pattern.exec(text)
consoloe.log(matches.index) //0
consoloe.log(matches[0]) //cat
consoloe.log(pattern.lastIndex) //3

consoloe.log(matches.index) //5
consoloe.log(matches[0]) //bat
consoloe.log(pattern.lastIndex) //8

consoloe.log(matches.index) //11
consoloe.log(matches[0]) //fat
consoloe.log(pattern.lastIndex) //13

如果设置了全局标记,每次调用exec()都会返回字符串的下一个匹配项,lastIndex也会发生变化
RegExp构造函数属性
函数属性可以进行简写
input 简写 _ 最后搜索字符串 lastMatch 简写& 最后匹配文本
lastParen简写 + 最后匹配的捕获组 leftContext` input字符串出现在lastMathch前面文本

上一篇下一篇

猜你喜欢

热点阅读