js正则表达式的属性 - part3 - Kaiqisan

js正则表达式的属性 - part3

我是Kaiqisan,是一个会经常口胡的标准普通话玩家,今天来从比较深层的角度解析正则表达式,虽然吧,这里的东西在正常的编写代码中很少用到,但是,我还是要将,万一用到了呢?万一呢!?

一般表达式的属性

自从一个正则表达式被创建之后就一直拥有的属性

global: 是否设置了全局搜索

let reg = /app/g
console.log(reg.global)   // true

ignoreCase: 是否设置了不区分大小写

let reg = /app/i
console.log(reg.ignoreCase)   // true

multiline: 是否设置了换行搜索

let reg = /app/m
console.log(reg.multiline)   // true

source: 正则表达式的字符串表达。(不包含后面的后缀)

let reg = / app /
console.log(reg.source);  // 输出为 ' app '

lastIndex: 表示在搜索中找到的下一个匹配元素的字符位置的下一位(以下标为准),一般与exec方法配合使用

let reg = /add/g
let str = "addaddaddaddadd"
reg.exec(str)
console.log(reg.lastIndex);  // 3 第一个"add"的下一位"a"的下标为3
reg.exec(str)
console.log(reg.lastIndex); // 6 第二个"add"的下一位"a"的下标为6

构造函数属性

爸爸级别的人物,它与在场的所有的表达式挂钩

input: 最近一次要匹配的字符串,等同于 $_

leftContext: 当前匹配中的字符串中目前符合匹配条件的关键字的前面的所有字符,等同于 $`

rightContext: 当前匹配中的字符串中目前符合匹配条件的关键字的后面的所有字符,等同于 $'

lastMatch: 当前匹配的字符串中目前的匹配项,等同于 $&

lastParen: 最近一次匹配的捕获组,等同于 $+

multiline: 是否所有表达式都使用多行模式。等同于 $*

    let str = 'hello world and you'
    let reg = /(wo)(r)(ld)/
    
    reg.test(str)

    console.log(RegExp.input) // hello world and you
    console.log(RegExp.leftContext) // hello 
    console.log(RegExp.rightContext) //  and you
    console.log(RegExp.lastMatch) // world
    console.log(RegExp.lastParen) // ld
    console.log(RegExp.multiline) // undfined

    console.log(RegExp.$_)  //=input
    console.log(RegExp['$`']) //=leftContext
    console.log(RegExp['$\'']) //=rightContext
    console.log(RegExp['$&']) //=lastMatch
    console.log(RegExp['$+']) //=lastParen
    console.log(RegExp['$*']) //=multiline

总结

虽然可能说不上这个方法有多么冷门,但它足够细节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaiqisan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值