AIR, Flex - как проверить правильность регулярного выражения - PullRequest
5 голосов
/ 23 августа 2011

Я хочу проверить в Adobe AIR, если данное регулярное выражение действительно. Я ищу что-то подобное, как здесь: Как проверить, является ли данное регулярное выражение действительным?


Я не хочу сравнивать регулярное выражение и текстовое значение - я просто хочу проверить, действительно ли это регулярное выражение. Если кто-то вводит недопустимое регулярное выражение - например: "x {5, -3}" или "(((^^ $$$) //)" или что-то подобное, мне просто нужно сообщить ему, что это регулярное выражение не является действительный - его неправильное регулярное выражение.

В Java это можно сделать: [Код]

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

[/ код]

Ответы [ 4 ]

1 голос
/ 24 августа 2011

Насколько я могу судить, вы ищете тестовое приложение, в котором вы можете ввести регулярное выражение и значение, и приложение сообщит вам, есть ли совпадение или нет.Предполагая, что это то, что вы хотите, этот код сделает это за вас:

<?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 голос
/ 24 августа 2011

Если вы хотите динамически увидеть результат вашего регулярного выражения на заданном входе, я предлагаю вам этот онлайн-инструмент:

Flex 3 Проводник регулярных выражений

0 голосов
/ 24 августа 2011

Я не могу найти это реализованным в AS3, но здесь есть исходный код Pattern.java

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

Может быть, вы можете реализовать то же самое в AS3.

0 голосов
/ 23 августа 2011

Что вы подразумеваете под "действительным"?Если вы хотите проверить, соответствует ли регулярное выражение определенной строке, вы можете использовать RegExp::test() - оно вернет true, если есть совпадение, false, если его нет.

...