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

{
  xtype: 'textfield',
  fieldLabel: '* Zip Code',
  allowBlank: false,
  maskRe: /\d{0,5}/i
}

最佳答案

昨天进行了相同的验证,并遇到了类似的问题:-)
您误用了正则表达式maskRe。 regex将验证整个字符串,maskRe将过滤char输入。因此,请在正则表达式中指定完整的验证正则表达式,并在maskRe中仅指定具有允许的字符的字符类-这不是必需的,但如果您不想让用户仅输入AAAAA而被告知错误,则很有用。

我不会使用NumberField,因为您要验证的实际上不是数字,而是数字代码,并且不允许使用负数。另外,为什么不允许0-5个字符,您为什么不完全允许5个字符呢?这也不允许空白文本,因此没有必要allowBlank:false。

试试这个

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

高温超导

关于regex - extjs输入文本maskRe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2604077/

10-11 18:25