Нужно что бы первые 2 символа были буквы, 3-5 были цифры
$(document).on('input', 'input[type="text"]', function () {
if($(this).val().length <= 2){
this.value = this.value.replace (/[^а-я ]/g, '');
}
if($(this).val().length >= 3 && $(this).val().length < 5){
this.value = this.value.replace (/[^0-9+]/, '');
}
});
Пробовал так, почему то после ввода букв цифры удаляют буквы и ввод происходит сначала
другой способ
$(document).on('input', 'input[name="start"]', function (){
this.value = this.value.replace (/[^А-Яа-я ]/g, '');
if($(this).val().length == 1){
$('input[name="center"]').focus();
}
});
$(document).on('input', 'input[name="center"]', function (){
this.value = this.value.replace (/[^0-9+]/, '');
if($(this).val().length == 3){
$('input[name="end"]').focus();
}
if($(this).val().length == 0){
$('input[name="start"]').focus();
}
});
$(document).on('input', 'input[name="end"]', function (){
this.value = this.value.replace (/[^А-Яа-я ]/g, '');
if($(this).val().length == 2){
$('input[name="reg"]').focus();
}
if($(this).val().length == 0){
$('input[name="center"]').focus();
}
});
$(document).on('input', 'input[name="reg"]', function (){
this.value = this.value.replace (/[^0-9+]/, '');
if($(this).val().length == 0){
$('input[name="end"]').focus();
}
});
$('input[type="text"]').keydown(function(){
$(this).css( "color", "black" );
});
Сами input:
<div class="gos-inp">
<input type="text" name="start" class="gos-inp_start" maxlength="1" placeholder="А">
<input type="text" name="center" class="gos-inp_center" maxlength="3" placeholder="001">
<input type="text" name="end" class="gos-inp_end" maxlength="2" placeholder="АА">
<input type="text" name="reg" class="gos-inp_reg" maxlength="2" placeholder="27">
<img src="gos.jpg">
</div>
ГОСТом для использования на знаках разрешены 12 букв кириллицы, имеющие графические аналоги в латинском алфавите — А, В, Е, К, М, Н, О, Р, С, Т, У и Х.
(источник)
Строим вот такую регулярку - ^(а|в|е|к|м|н|о|р|с|т|у|х){1}[0-9]{3}(а|в|е|к|м|н|о|р|с|т|у|х){2}$
, где
^ - начало строки
(а|в|е|к|м|н|о|р|с|т|у|х){1} - набор букв по ГОСТу в гос.номере (только одна буква)
[0-9]{3} - группа из трёх чисел (000-999)
(а|в|е|к|м|н|о|р|с|т|у|х){2} - группа из двух букв по ГОСТу
$ - конец строки
ещё добавим флаги:
g - глобальный поиск
i - регистронезависимый шаблон
Результат:
$('input').on('input', function(){ // вешаем обработчик на инпут
let val = $(this).val(); // получаем значение в переменную
if(val.length === 6) { // нам нужно, чтобы значение было шесть символов в длину
if(val.match(/^(а|в|е|к|м|н|о|р|с|т|у|х){1}[0-9]{3}(а|в|е|к|м|н|о|р|с|т|у|х){2}$/gi)) { // запускаем проверку по нашей регулярке
$(this).css('color', 'green'); // красим текст инпута в зелёный, если это гос. номер по ГОСТу
} else {
$(this).css('color', 'darkred'); // красим текст в красный, если нет
}
} else $(this).css('color', 'inherit'); // если длина значение не шесть символов, то возращаем дефолтный цвет
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" value="" placeholder="А000АА" maxlength="6" size="6">
<select>
<option>Тут выбор региона</option>
</select>
P.s. Я не стал бы колхозить это несколькими инпутами, а выбор региона перенёс бы на список (<select>
).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть какая-то команда, чтобы закрывать вкладку через консоль с использованием таймера типа setTimeOut?
В ruby есть find or createКак в c# сделать такое же? Единственное что нашёл, это такой хелпер
Нужно заполнить шаблон xlsx даннымиПользуюсь библиотекой openxml