extjs输入文本maskRe

use*_*196 5 regex extjs

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

{
  xtype: 'textfield',
  fieldLabel: '* Zip Code',
  allowBlank: false,
  maskRe: /\d{0,5}/i
}
Run Code Online (Sandbox Code Playgroud)

Ann*_*ini 7

昨天进行了相同的验证并遇到了类似的问题:-)
你错误地将maskRe与正则表达式混为一谈.正则表达式将验证整个字符串,maskRe将过滤char输入.因此,在正则表达式中指定完整的验证正则表达式,并且只在maskRe中指定允许使用字符的字符类 - 这不是必需的,但如果您不希望用户键入AAAAA只是为了被告知它是错误的,则会有所帮助.

我不会使用NumberField,因为您尝试验证的不是数字,而是数字代码,不允许使用负数.另外,不是允许0-5个字符,为什么不允许5个字符?这也不允许使用blanktext,因此不需要allowBlank:false.

试试这个

regex: /^\d{5}$/i,
maskRe: /\d/i
Run Code Online (Sandbox Code Playgroud)

HTH


Bri*_*kau 5

你没有使用maxLength配置的任何原因?要确保数值,可以使用a NumberField而不是TextField.


Ala*_*ore 1

我不熟悉 maskRe,但我的猜测是你需要锚定正则表达式:

maskRe: /^\d{0,5}$/
Run Code Online (Sandbox Code Playgroud)