正则表达式验证器 MXML

3

你好
我有一个正则表达式问题。我在MXML中有一个RegExpValidator,并且希望当源包含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
假设有一个字符串abc。如果你对它应用正则表达式.*[^ab].*,第一个.*会匹配ab[^ab]会匹配c,最后一个.*会匹配空字符串。
此外,如果你没有将正则表达式锚定到字符串的开头和结尾,那么它可能会(取决于验证器的实现)只匹配子字符串而声明成功。
你需要这样做:
^[^ab]*$

这个正则表达式匹配除了 ab 之外的任意数量的字符。 ^ 锚定正则表达式到字符串的开头,$ 锚定正则表达式到字符串的结尾。


我犯了一个错误,不是 b 或 c,而是 a 或 b。 - Snote

1

有很多在线工具可以帮助你找到正确的正则表达式。 其中一些可能需要你花费一些时间来完善 :P

我主要使用的是这个:http://gskinner.com/RegExr/

干杯


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接