推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
gxz

移动端浏览器不支持 (?<!exp) 正则应该如何解决

  •  1
     
  •   gxz · May 7, 2020 · 2179 views
    This topic created in 2201 days ago, the information mentioned may be changed or developed.

    最近需要写一个 markdown 编辑器,本来是没有问题的,在我电脑上一切工作正常。但切换到移动端浏览器后,正则处理就报错:

    Uncaught SyntaxError: Invalid regular expression:: Invalid group
    

    搜索发现是移动端浏览器不支持(?<!exp),所以我将原代码:

    h1: new RegExp("(?<![\\S])#{1} (.*)",'g')
    

    替换为:

    h1: new RegExp("(?=[\\s]?)#{1} (.*)",'g')
    or
    h1: new RegExp("(?:\\s?)#{1} (.*)",'g')
    

    这样却导致了它匹配所有字符串而不管它是否是单独的一行

    请问正确的解决方法应该是?

    2 replies    2020-05-07 23:11:46 +08:00
    VDimos
        1
    VDimos  
       May 7, 2020 via Android
    断言支持参差不齐,建议别用断言。
    如果不得不用,可以考虑使用第三方正则引擎,比如 XRegExp 这些提供正则现代语法完整支持的库
    jinliming2
        2
    jinliming2  
       May 7, 2020
    使用第三方库,比如 XRegExp 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3023 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:11 · PVG 23:11 · LAX 08:11 · JFK 11:11
    ♥ Do have faith in what you're doing.