繁体   English   中英

Sencha Touch简单模型验证匹配器

[英]Sencha Touch simple model validation matcher

我正在尝试验证应接受以下任一条件的简单文本字段:

数字0-100 字母AF

需要说明的是,这是针对老师的评分作业,因此仅接受0-100和AF的分数(不包含特殊/非字母数字字符等)。

我似乎无法绕过reg exp和Sencha Touch匹配器。 我看过其他帖子,但它们不适用于我的问题。 谢谢。

我的模特:

    Ext.define('App.model.EnterGradesModel',{
    extend: 'Ext.data.Model',
    alias: 'model.User',

    config: {
        fields: [
            {
                grade: 'grade'
            }
        ],
        validations: [
            {
                type: 'format',
                field: 'grade',
                matcher:    //This is where I need the help ----- ,
                message: 'Grade should be 0-100 or A-F'
            }
        ]
    }
});

我认为处理程序:

        {
            xtype: 'button',
            width: 100,
            text: "Save",
            id: "saveMyGradeButton",
            action: 'saveMyGrade',
            handler : function() {
                var model = Ext.create('App.model.EnterGradesModel', this.up('formpanel').getValues());
                var errors = model.validate();
                console.log(model);

                if (errors.isValid()){
                    // Validation successful - fire grade event in controller
                    this.fireEvent('saveMyGrade', this);

                } else {
                    // Validation failed
                    var data="";
                    console.log(data);
                    errors.each(function (item, index, length) {
                        data = data + '| '+ item.getField() + ' - ' + item.getMessage() + ' |';
                    });
                    Ext.Msg.alert("oops.", data);
                }
            }
        }

此表达式将验证以下条件之一为真

  • 值是100
  • 值是两位数10-99
  • 值是任何一位数字0-9
  • 值是字母A到F

^(?:100|[1-9]\\d|\\d|[AF])$

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM