0
我有以下正則表達式不工作在JQuery中,但在PHP版本工作正常PHP的正則表達式不工作在JQuery
我做錯了什麼?
表達
if\s*\(((?:[^\(\)]|\((?1)\))*+)\)\s*{((?:[^{}]|{(?2)})*+)}
我有以下正則表達式不工作在JQuery中,但在PHP版本工作正常PHP的正則表達式不工作在JQuery
我做錯了什麼?
表達
if\s*\(((?:[^\(\)]|\((?1)\))*+)\)\s*{((?:[^{}]|{(?2)})*+)}
正則表達式是不是一個普遍的語言。您正在使用一些僅在PHP/PCRE中可用的構造(請參閱下面的變化),而不是JavaScript。
這正則表達式是差不多的,在任一版本的工作:if\s*\(((?:[^\(\)]|\((\1)\))*)\)\s*{((?:[^{}]|{(\2)})*)}
(?1)
成爲(\1)
(同2)
*+
成爲*
注意:我刪除了回溯控制序列:*+
,所以我不會感到驚訝,如果這種災難性的回溯與一些投入。
regex101實際上告訴你哪些功能在JS正則表達式引擎中不受支持。現在要查找如何以不同的方式完成這些操作,或者如果語法不同。 – simbabque
'(?1)'是JS中不可用的子程序調用。 –
這取決於你想用這個正則表達式來做什麼 –