Skip to content

Commit d908a91

Browse files
committed
[PRAC/cont] Add validation rules for vk/inputs
Organize validation rules/conditions for vk/inputs from contact-row. core: B-3 / JS-BL
1 parent d2faf1f commit d908a91

File tree

1 file changed

+50
-11
lines changed
  • core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js

1 file changed

+50
-11
lines changed

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js/index.js

Lines changed: 50 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -662,24 +662,63 @@
662662
break;
663663

664664
case 'vk':
665+
// первичная проверка на "пустое" поле ввода (выход из проверки соответствия)
665666
if (target.value === '') {
666-
errors.length = 0;
667+
invalidFeed.textContent = '';
668+
target.classList.remove('is-invalid');
667669
break;
668670
}
669-
if (!/^[a-zA-Z0-9_-]+$/.test(target.value)) {
670-
errors.push('Укажите корректный ID, например: id12345');
671-
}
672-
break;
673671

674-
case 'facebook':
675-
if (target.value === '') {
676-
errors.length = 0;
677-
break;
672+
// ряд проверок для вводимых данных (определённые условия для ввода)
673+
if (/\s/.test(target.value)) {
674+
errors.push('Пробелы недопустимы!'); // исключение пробелов
675+
target.classList.add('is-invalid');
676+
invalidFeed.textContent = 'Пробелы недопустимы!';
677+
// только английские буквы
678+
} else if (/[а-яА-ЯёЁ]/.test(target.value)) {
679+
errors.push(
680+
'Некорректный ввод! Измените раскладку клавиатуры!'
681+
);
682+
target.classList.add('is-invalid');
683+
invalidFeed.textContent =
684+
'Некорректный ввод! Измените раскладку клавиатуры!';
678685
}
679-
if (!/^[a-zA-Z0-9._-]+$/.test(target.value)) {
686+
// ввод/начало только с "id"
687+
else if (target.value === 'i') {
688+
invalidFeed.textContent = '';
689+
target.classList.remove('is-invalid');
690+
} else if (
691+
target.value.startsWith('i') &&
692+
target.value[1] !== 'd'
693+
) {
694+
errors.push('Контакт Vk должен начинаться только с "id"!');
695+
target.classList.add('is-invalid');
696+
invalidFeed.textContent =
697+
'Контакт Vk должен начинаться только с "id"!';
698+
}
699+
// ввод/начало не с "id" (если)
700+
else if (!/^id/.test(target.value)) {
680701
errors.push(
681-
'Укажите корректное имя пользователя, например: username1'
702+
'Контакт Vk должен начинаться только с "id", например: id12345! '
682703
);
704+
target.classList.add('is-invalid');
705+
invalidFeed.textContent =
706+
'Контакт Vk должен начинаться только с "id", например: id12345!';
707+
} else if (target.value === 'id') {
708+
invalidFeed.textContent = '';
709+
target.classList.remove('is-invalid');
710+
}
711+
// исключение ввода не цифр после "id"
712+
else if (!/^id\d+$/.test(target.value)) {
713+
errors.push('После "id" должны быть только цифры!');
714+
target.classList.add('is-invalid');
715+
invalidFeed.textContent =
716+
'После "id" должны быть только цифры!';
717+
}
718+
// если всё корректно (сообщений нет)
719+
else {
720+
invalidFeed.textContent = '';
721+
target.classList.remove('is-invalid');
683722
}
684723
break;
685724

0 commit comments

Comments
 (0)