RegExpValidator MXML - PullRequest
       1

RegExpValidator MXML

3 голосов
/ 20 мая 2011

Привет
У меня проблема с регулярным выражением.У меня есть RegExpValidator в MXML, и я хочу, чтобы он был недействительным, если источник содержит a или b
Мой RegExpValidator

<mx:RegExpValidator source="{value}"
                    property="text"
                    expression='.*[^ab].*'
                    valid="isValid(event)"
                    invalid="isInvalid(event)"/>

Мое выражение expression='.*[^ab].*' Когда это просто a, b или a и b(один или много раз) выражение недопустимо: OK
Когда все остальное выражение допустимо: OK
Но когда оно a или / и b с другим символом, оно также допустимо.Что мне нужно изменить, чтобы этот недействительный?

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Представьте себе строку abc. Если вы примените к нему регулярное выражение .*[^ab].*, первое .* будет соответствовать ab, [^ab] соответствует c, а последнее .* соответствует пустой строке.

Кроме того, если вы не привязываете свое регулярное выражение к началу и концу строки, может случиться (в зависимости от реализации вашего валидатора), что регулярное выражение объявляет успех, если соответствует только подстрока.

Вы хотите это:

^[^ab]*$

Соответствует любому количеству символов, кроме a или b. ^ привязывает регулярное выражение к началу, $ к концу строки.

1 голос
/ 20 мая 2011

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

Я чаще всего использую этот: http://gskinner.com/RegExr/

Приветствия

...