是否有可能在ActionScript / Flex中创建错误的正则表达式,这会导致运行时错误?我在Flex和Flex中尝试过这么多奇怪的正则表达从未抱怨过!我怎么知道如果我的正则表达式有效?
答案 0 :(得分:3)
理论上,根据ActionScript 3.0 SyntaxError documentation,当无法解析正则表达式时,会在运行时生成一个可以在try / catch块中检测到的SyntaxError。
在实践中,我从未真正看到过RegExp类表现出这种行为。
答案 1 :(得分:1)
我没有ActionScript / Flex,所以我无法对此进行测试。既然你没有给出任何例子,我不知道你认为什么是“怪异”的正则表达式。如果你尝试其中一个会发生什么:
/(?<=x*)foo/
(ECMAScript正则表达式不支持lookbehind)
/foo([/
(缺少右括号/括号)
/foo)]/
(缺少左括号/括号)
/foo(?)/
(语法错误)
/foo\1/
(无效的反向引用)
答案 2 :(得分:1)
如果您的最终目标是确定特定正则表达式是否有效,那么我不确定尝试故意生成运行时错误是实现此目的的最佳方法。
相反,我建议针对已知输入测试您的模式,并确保它们按预期运行。您可以使用这样的工具来测试: RegExr