Проверка ввода input c условиям

Рейтинг: 1Ответов: 1Опубликовано: 13.02.2015

Хочу сделать ограничения на ввод в input. Если первый введенный символ цифра, то следующии 6 символов должны быть тоже цифры. Если первые 2 символа буквы (если первый символ буква, то второй должен тоже быть буквой), то следующие 7 символов должны быть цифры.

Должно быть так: UA37042014 или 5482831.

Пытался сделать что-то для ввода цифр.

$('#code').keyup(function(e) {
        var curr = e.which;

            if (curr.match(/[^0-9]/g) ) {
                return;
            }else{
                return false;
            }
    });

Ответы

▲ 2Принят

Предлагаю сделать на jquery mask:

Пример: http://jsfiddle.net/o142z3ft/1/

$.mask.definitions['h'] = "[A-Z]";
$.mask.autoclear = false;

var def = false;

$('#code').keyup(function(e) {
    var val = this.value.replace(/_|-/g, '');

    if(!def && val) {
        if(!/^\d+/.test(this.value)) {
            $(this).mask("hh-9999999");
        }
        else {
            $(this).mask("9999999");
        }

        $(this).caret(1, 1);

        $(this).val(this.value);
        def = true;
    }

    if(!val && def) {
        console.log(!this.value.replace(/_|-/g, ''));
        $(this).unmask().val("");    
        def = false;
    }
});