我正在尝试仅在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);
}
}
}
});