如何限制Sencha touch Textfield仅接受数字和空格字符?

时间:2018-08-29 09:09:13

标签: javascript regex sencha-touch sencha-touch-2

我正在尝试仅在sencha touch的“文本”字段中获取数字和空格。 我正在使用此字段输入信用卡号或借记卡号。在keyup事件中,我做了一些代码将这些数字分成4位数字。像1234 5678 9012 3456一样,但是我不想用户输入字母字符,例如a,b,c,X,Y,Z等。我搜索了一些解决方案并在我的代码中使用了它,但是它似乎并不令人担忧。 我在文本文件配置中使用了maskRe: /[0-9.]/。但这对我不起作用。 有什么解决办法吗?

请参见下文,我放置了一些Textfiled代码

    this.CardNumber = new Ext.field.Text({
        label: TraxiApp.Lang.translate('_cardNo_'),
        labelAlign: 'top',
        clearIcon: false,
        maskRe: /[0-9.]/,
        cls: 'card-number-field',
        listeners: {
            scope: this,

            keyup: function (t) {

                var value = t.getValue().toString();
                var v = value.replace(/\s+/g, '').replace(/[^0-9]/gi, '')
                var matches = v.match(/\d{4,16}/g);
                var match = matches && matches[0] || ''
                var parts = []

                for (i = 0, len = match.length; i < len; i += 4) {
                    parts.push(match.substring(i, i + 4))
                }

                if (parts.length) {
                    var value = parts.join(' ')
                    t.setValue(value)
                } else {
                    t.setValue(value);
                }
            }
        }
    });

0 个答案:

没有答案