是否有可能在ActionScript / Flex中创建错误的正则表达式,这将导致运行时错误?

时间:2011-02-25 04:58:37

标签: regex flex actionscript

是否有可能在ActionScript / Flex中创建错误的正则表达式,这会导致运行时错误?我在Flex和Flex中尝试过这么多奇怪的正则表达从未抱怨过!我怎么知道如果我的正则表达式有效?

3 个答案:

答案 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