extjs输入法文本 maskRe

问题描述 投票:5回答:4

在Ext JS中,以下是 maskRe 不起作用,因为它没有把最大5个字符的限制放在文本字段上,为什么?

{
  xtype: 'textfield',
  fieldLabel: '* Zip Code',
  allowBlank: false,
  maskRe: /\d{0,5}/i
}
regex extjs
4个回答
7
投票

昨天做了同样的验证,遇到了类似的问题:-) 因此,在regex中指定完整的验证regex,而在maskRe中只指定允许字符的字符类--这不是必需的,但如果你不想让用户输入AAAAAA只是被告知它是错误的,那么这很有帮助。

我不会使用NumberField来代替,因为你要验证的并不是一个真正的数字,而是一个数字代码,而负数是不允许的。另外,不允许使用0-5个字符,为什么不允许正好是5个?这也不允许使用空白文本,所以allowBlank:false是不必要的。

试试这个

regex: /^\d{5}$/i,
maskRe: /\d/i

HTH


6
投票

你为什么不使用 maxLength 配置? 为了保证数值,你可以用一个 NumberField 而不是TextField。


1
投票

我对maskRe不熟悉,但我猜测你需要使用 的regex。

maskRe: /^\d{0,5}$/

0
投票

如果你需要更复杂的regexp,而不仅仅是允许的字符列表,你需要使用 "vtypehttp:/www.extjs.comforumshowthread.php?43510-TextField-and-MaskRe&p=206015#post206015

© www.soinside.com 2019 - 2024. All rights reserved.