2011-05-20 29 views
3


我有一個正則表達式的問題。我在MXML的RegExpValidator,我想這是無效的,當源含有a或b
我RegExpValidator是RegExpValidator MXML

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

我的表達是expression='.*[^ab].*' 當它只是A,B或A和B(一個或多次)表達式無效:OK
當它是其他所有內容時,表達式有效:好吧
但是當它與另一個caractere一起或/和b時,它也是有效的。我必須改變以使這個無效?

回答

1

有很多在線工具可以幫助您找到正確的RegExp。 他們有些人可能需要一段時間來完善:P

一個我大多用的是這樣一個:http://gskinner.com/RegExr/

乾杯

2

想象字符串abc。如果將正則表達式.*[^ab].*應用於它,則第一個.*將與ab匹配,[^ab]匹配c,最後的.*匹配空字符串。另外,如果您沒有將您的正則表達式錨定到字符串的開始和結束位置,則可能會發生(取決於驗證程序的實現)正則表達式是否只有子字符串匹配纔會聲明成功。

你想這樣的:

^[^ab]*$ 

這除了ab任意數目的字符相匹配。 ^將正則表達式定位到起始位置,$到字符串末尾。

+0

我犯了一個錯誤,它不是b或c,它是a或b – Snote 2011-05-20 13:59:37

+0

@注:好的,我已經編輯了我的答案。 – 2011-05-20 17:10:46