如何在文本字段的sencha touch中进行字母数字验证

时间:2015-09-15 13:04:53

标签: javascript sencha-touch sencha-architect sencha-touch-2.1

如何在textfield的Sencha Touch中实现字母数字验证?我试过这种方式:

regex: /^[a-zA-Z0-9]*$/,
regexText: 'Invalid value in field',

但是当我输入#符号或任何其他特殊字符时,它没有显示任何错误。

1 个答案:

答案 0 :(得分:3)

@Benoit Cuvelier在评论中指出:

  

根据文件:docs.sencha.com/touch/2.1.0/#!/api/Ext.field.Text   Textfield组件没有“正则表达式”属性(但在ExtJs中它有)。一世   认为你应该检查变更事件的价值

也就是说,使用keyup侦听器的简单实现可能是:

{
    xtype: 'textfield',
    label: 'Only alphanumeric values',
    name: 'alphanumeric',
    regex: /^[a-zA-Z0-9]*$/,
    listeners: {
        keyup: function(field) {
            var value = field.getValue();
            if (value.length && !value.match(field.config.regex)) {
                field.setStyle('border: 1px solid red;');
            } else {
                field.setStyle('border: 0;');
            }
        }
    }
}

https://fiddle.sencha.com/#fiddle/ttl