V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiaohantx
V2EX  ›  问与答

求助前瞻/后瞻的正则打包不到 js 里嘛....

  •  
  •   xiaohantx · 2020-03-26 20:33:29 +08:00 · 1041 次点击
    这是一个创建于 1703 天前的主题,其中的信息可能已经有所发展或是发生改变。
    const reg = /(?<=\$\{)\w+(?=\})/g
    // const reg = new RegExp('(?<=\$\{)\w+(?=\})', 'g')
    

    试了下第一种打包之后除了谷歌核都报了错,上一页跳不过来

    SyntaxError: Invalid regular expression: invalid group specifier name
    

    搜了一些内容,好像可以第二种方式存放正则,但是}这样都地方 eslint 检测报错,强行保存页面中正则就会不起作用,

    3 条回复    2020-03-27 10:42:30 +08:00
    autoxbc
        1
    autoxbc  
       2020-03-26 23:02:19 +08:00
    1. 后瞻断言不是标准的一部分,尽管有些浏览器支持
    https://caniuse.com/#search=assertions

    2. 后瞻断言总是可以用捕获组模拟
    https://blog.csdn.net/example440982/article/details/85177133

    3. 字面量写法总是和构造法得到的正则行为一致,这是标准对 JS 引擎的要求

    4. 字面量和构造法对应的转义范围有区别,我粗略的记得字面量需要对所有正则有效符号转义,构造法不需要对任何字符转义除了转义符
    /\d+/ ~= new RegExp('\\d+')
    gqbre
        2
    gqbre  
       2020-03-27 08:01:56 +08:00 via iPhone   ❤️ 1
    @autoxbc 后瞻断言在 ES9(ES2018)中已经成为正式标准
    xiaohantx
        3
    xiaohantx  
    OP
       2020-03-27 10:42:30 +08:00
    @gqbre
    @autoxbc

    浏览器暂时不支持情况- -只能取到 str 之后遍历数组用 replace 再过滤一遍了....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2768 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:28 · PVG 16:28 · LAX 00:28 · JFK 03:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.