AIR,Flex - 如何检查正则表达式是否有效

时间:2011-08-23 09:38:56

标签: flash flex air

如果给定的正则表达式有效,我想检入Adobe AIR。 我正在寻找像这里类似的somtehing:How to check if a given Regex is valid?


我不想比较正则表达式和文本值 - 我想检查这个正则表达式是否有效。如果有人输入无效的正则表达式 - 例如:“x {5,-3}”或“(((^^ $$$)//)”或类似的东西,我只需要告诉他这个正则表达式不是有效 - 它不正确的正则表达式。

在Java中,它可以通过以下方式完成: [代码]

try {
            Pattern.compile(userInputPattern);
        } catch (PatternSyntaxException exception) {
            System.err.println(exception.getDescription());
            System.exit(1);
        }

[/代码]

4 个答案:

答案 0 :(得分:1)

据我所知,您正在寻找一个测试应用程序,您可以在其中输入正则表达式和值,应用程序将告诉您是否匹配。假设这就是你想要的,这段代码将为你做到:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[
            private function test(regex:String, value:String):String {
                return new RegExp(regex).test(value) ? "MATCH" : "NOT A MATCH";
            }
        ]]>
    </fx:Script>

    <s:Form>
        <s:FormItem label="RegEx:">
            <s:TextInput id="regex" />
        </s:FormItem>
        <s:FormItem label="Test Value: ">
            <s:TextInput id="testValue" />
        </s:FormItem>

        <s:Label text="{test(regex.text, testValue.text)}" />
    </s:Form>

</s:WindowedApplication>

答案 1 :(得分:1)

如果您想在给定输入上动态查看正则表达式的结果,我建议您使用此在线工具:

Flex 3 Regular Expression Explorer

答案 2 :(得分:0)

“有效”是什么意思?如果要检查正则表达式是否与特定字符串匹配,可以使用RegExp::test() - 如果匹配则返回true,如果没有则返回false

答案 3 :(得分:0)

我在AS3中找不到这个,但这里有源代码Pattern.java

https://github.com/unkiwii/Random-Stuff/blob/master/java/src/java/util/regex/Pattern.java

也许你可以在AS3中实现相同的功能。