jQuery Mask с дополнительным символом
Я использую jquery mask
Плагин в моем приложении для маскировки некоторых полей. Работает нормально. Я должен замаскировать автомобильные номера в бразильском формате (3 буквы и 4 цифры разделены -
) и код ниже всегда работал нормально:
$(".car-plate").mask("AAA-0000");
Теперь я должен предоставить новый формат, который увеличивает необязательную букву, это означает: AAAA-0000
, Я должен сохранить текущий формат, чтобы быть совместимым. Иногда автомобильная табличка может быть AAA-0000
и иногда AAAA-0000
, Я попробовал это:
var carMaskBehavior = function (val) {
return val.replace(/\W/g, '').length === 8 ? 'AAAA-AAAA' : 'AAA-AAAA';
},
spOptions = {
onKeyPress: function(val, e, field, options) {
field.mask(carMaskBehavior.apply({}, arguments), options);
}
};
$('#car1').mask(carMaskBehavior, spOptions);
Jsbin: https://jsbin.com/zijayiwoxe/edit?html,js,console,output
Я пытаюсь просто буквы, но я не знаю, как это исправить, чтобы определить маску при вводе пользователем текста в формате AAA-9999
или же AAAA-9999
, Как я могу это сделать?
Спасибо.
1 ответ
Просто измените маску на лету и дайте дополнительный символ до конца:
var spOptions = {
onKeyPress: function(val, e, field, options) {
var mask = "";
if (val.length === 8) {
mask = 'AAA-AAAAZ'
} else {
mask = 'AAAA-AAAA'
}
$('#car1').mask(mask, options);
},
translation: {
'Z': {
pattern: /[.]?/,
optional: true
}
}
};
$('#car1').mask('AAA-AAAA', spOptions);