嗨
我有一个正则表达式的问题。我在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时,它也有效。我必须更改什么才能使此无效?
发布于 2011-05-20 21:23:50
想象一下字符串abc
。如果对其应用正则表达式.*[^ab].*
,则第一个.*
将匹配ab
,[^ab]
匹配c
,最后一个.*
匹配空字符串。
此外,如果您没有将正则表达式锚定到字符串的开头和结尾,则可能会发生这样的情况(取决于验证器的实现):如果只有一个子字符串匹配,则正则表达式将声明成功。
你想要这个:
^[^ab]*$
这将匹配除a
或b
之外的任意数量的字符。^
将正则表达式锚定在开头,$
锚定在字符串的末尾。
发布于 2011-05-20 20:58:51
有很多在线工具可以帮助你找到合适的RegExp。其中一些可能需要一段时间来完善:P
我最常用的是这个:http://gskinner.com/RegExr/
干杯
https://stackoverflow.com/questions/6072162
复制相似问题