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



我想检查Adobe AIR如果给定的正则表达式是有效的。我正在寻找类似于这里的东西:如何检查给定的正则表达式是否有效?


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

在Java中可以这样做:(代码)

try {
            Pattern.compile(userInputPattern);
        } catch (PatternSyntaxException exception) {
            System.err.println(exception.getDescription());
            System.exit(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>

如果您想动态地查看给定输入的regexp结果,我建议您使用以下在线工具:

Flex 3正则表达式浏览器

你说的"有效"是什么意思?如果你想检查正则表达式是否匹配一个特定的字符串,你可以使用RegExp::test()——如果有匹配,它将返回true,如果没有,它将返回false

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

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

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

最新更新