我是动作脚本的新手,正在研究avm2 ..
我想知道的一件事是如何确定在RegExp类中是否编译了给定的正则表达式,它在内部使用pcre库作为正则表达式编译器.
例如,以下具有括号不匹配的正则表达式,它可能不在RegExp类的pcre中编译.
var r:RegExp = new RegExp("(a))");
我尝试使用如下所示的try-catch,没有发生任何异常.
try { var r:RegExp = new RegExp("(a))"); } catch (e:Error) { trace('error'); }
谢谢.
解决方法
根据
the documentation,正则表达式中的错误将抛出一个SyntaxError:
A SyntaxError exception is thrown when a parsing error occurs,for one of the following reasons:.
• An invalid regular expression is parsed by the RegExp class.
• Invalid XML content is parsed by the XML class.
作为Error的子类,您的代码应该已经捕获它,但它看起来已经破了in my testing.