【问题标题】:RegExpValidator MXML正则表达式验证器 MXML
【发布时间】:2011-05-20 12:54:09
【问题描述】:

嗨
我的正则表达式有问题。我在 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 or/and b with other caractere时,它也是有效的。我必须更改什么才能使其无效?

【问题讨论】:

    标签: regex apache-flex mxml


    【解决方案1】:

    想象一下字符串abc。如果对它应用正则表达式.*[^ab].*,第一个.* 将匹配ab,[^ab] 匹配c,最后一个.* 匹配空字符串。

    此外,如果您不将正则表达式锚定到字符串的开头和结尾,则可能会发生(取决于您的验证器的实现)如果只有一个子字符串匹配,则正则表达式声明成功。

    你想要这个:

    ^[^ab]*$
    

    这匹配除a 或b 之外的任意数量的字符。 ^ 将正则表达式锚定到字符串的开头,$ 锚定到字符串的末尾。

    【讨论】:

    • 我搞错了,不是b或者c,是a或者b
    【解决方案2】:

    有很多在线工具可以帮助您找到正确的 RegExp。 其中一些可能需要您一段时间才能完善:P

    我最常用的是这个:http://gskinner.com/RegExr/

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多