Javascript Sencha Touch简单模型验证匹配器

Javascript Sencha Touch简单模型验证匹配器,javascript,regex,model,sencha-touch,Javascript,Regex,Model,Sencha Touch,我试图验证一个应该接受的简单文本字段 要么: 数字是0-100 或 字母A-F 为了澄清这一点,这是为了给老师的作业评分,因此只接受0-100分和a-F分(没有特殊/非字母数字字符等) 我只是不能把我的头围绕着reg exp和Sencha Touch matcher。我看过其他帖子,但它们不太适合我的问题。谢谢 我的模型: Ext.define('App.model.EnterGradesModel',{ extend: 'Ext.data.Model', alias:

我试图验证一个应该接受的简单文本字段 要么:

数字是0-100 或 字母A-F

为了澄清这一点,这是为了给老师的作业评分,因此只接受0-100分和a-F分(没有特殊/非字母数字字符等)

我只是不能把我的头围绕着reg exp和Sencha Touch matcher。我看过其他帖子,但它们不太适合我的问题。谢谢

我的模型:

    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 |[A-F])$


看起来不错,但仍然无法验证匹配器行上的匹配器:
matcher://^(?:100 |[1-9]\d |\d |[A-F])$/,
正则表达式被斜杠包围的地方?我之所以这样做是因为表达式确实按预期工作。我最终使用了如下匹配语句:if(!grade.match(alphNum)){..show error..}而不是Sencha touch验证系统。