Можно ли создать неправильное регулярное выражение в ActionScript / Flex, что приведет к ошибке во время выполнения? - PullRequest
2 голосов
/ 25 февраля 2011

Можно ли создать неправильное регулярное выражение в ActionScript / Flex, что приведет к ошибке во время выполнения?Я пробовал так много странных регулярных выражений во Flex, и Flex никогда не жаловался!Как я узнаю, что мое регулярное выражение действительно?

Ответы [ 3 ]

3 голосов
/ 18 марта 2011

Теоретически, согласно документации ActionScript 3.0 SyntaxError , когда регулярное выражение не может быть проанализировано, во время выполнения генерируется SyntaxError, которую можно обнаружить в блоке try / catch.

На практике я никогда не видел, чтобы класс RegExp демонстрировал такое поведение.

1 голос
/ 28 февраля 2011

Если ваша конечная цель - определить, является ли конкретное регулярное выражение допустимым или нет, то я не уверен, что попытка преднамеренно генерировать ошибки времени выполнения - лучший способ сделать это.

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

1 голос
/ 25 февраля 2011

У меня нет ActionScript / Flex, поэтому я не могу это проверить. Поскольку вы не привели никаких примеров, я не знаю, что вы думаете о «странном» регулярном выражении. Что произойдет, если вы попробуете один из них:

/(?<=x*)foo/

(регулярные выражения ECMAScript не поддерживают просмотр назад)

/foo([/

(пропущенные закрывающие скобки / скобки)

/foo)]/

(пропущенные открывающие скобки / скобки)

/foo(?)/

(синтаксическая ошибка)

/foo\1/

(неверная обратная ссылка)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...