搜索

首页  >  问答  >  正文

javascript - 正则表达式 /(\d)(?=(\d{3})+\.)/g如果把?=改成?:为什么结果不一样?

我记得?:和?=差不多啊,只不过?:捕获而?=不捕获

高洛峰高洛峰2745 天前324

全部回复(2)我来回复

  • 黄舟

    黄舟2017-05-19 10:37:15

    不知道你需求是怎样 单单从题目来看 其实差别不大

    ?=是正向前瞻 ?:是非捕获

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:37:15

    如果是检查是否match,那么肯定都是返回true的,但如果你取 Full match 两种是不一样的。

    要理解 Lookahead 的意义,它match到的是一个位置,而不是真正的字符

    推荐一个测试 regex 的站
    https://regex101.com

    用你提供的两个正则和 1333 测试分别结果

    回复
    0
  • 取消回复