V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
xiaohantx
V2EX  ›  问与答

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

  •  
  •   xiaohantx · Mar 26, 2020 · 1366 views
    This topic created in 2225 days ago, the information mentioned may be changed or developed.
    const reg = /(?<=\$\{)\w+(?=\})/g
    // const reg = new RegExp('(?<=\$\{)\w+(?=\})', 'g')
    

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

    SyntaxError: Invalid regular expression: invalid group specifier name
    

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

    3 replies    2020-03-27 10:42:30 +08:00
    autoxbc
        1
    autoxbc  
       Mar 26, 2020
    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  
       Mar 27, 2020 via iPhone   ❤️ 1
    @autoxbc 后瞻断言在 ES9(ES2018)中已经成为正式标准
    xiaohantx
        3
    xiaohantx  
    OP
       Mar 27, 2020
    @gqbre
    @autoxbc

    浏览器暂时不支持情况- -只能取到 str 之后遍历数组用 replace 再过滤一遍了....
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3998 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 04:11 · PVG 12:11 · LAX 21:11 · JFK 00:11
    ♥ Do have faith in what you're doing.