Skip to content

Commit 44fd5a2

Browse files
committed
[PRAC/cont] Add validation rules for e-cont/inputs
Organize validation rules/conditions for e-cont/inputs from contact-row. Worth noting: - that e-cont is short for "extra-contact". core: B-3 / JS-BL
1 parent 51cb6e4 commit 44fd5a2

File tree

1 file changed

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

1 file changed

+85
-1
lines changed

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

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -835,7 +835,7 @@
835835
invalidFeed.textContent =
836836
'Укажите корректное имя пользователя, например: @Im_123';
837837
}
838-
// исключение ввода более двух точек
838+
// исключение ввода точек
839839
else if ((target.value.match(/\./g) || []).length > 0) {
840840
errors.push('Имя пользователя не может содержать точки!');
841841
target.classList.add('is-invalid');
@@ -885,6 +885,90 @@
885885
}
886886
break;
887887

888+
case 'extra-contact':
889+
// первичная проверка на "пустое" поле ввода (выход из проверки соответствия)
890+
if (target.value === '') {
891+
invalidFeed.textContent = '';
892+
target.classList.remove('is-invalid');
893+
break;
894+
}
895+
896+
// ряд проверок для вводимых данных (определённые условия для ввода)
897+
if ((target.value.match(/\s/g) || []).length > 1) {
898+
errors.push('Только ОДИН пробел допустим!');
899+
target.classList.add('is-invalid');
900+
invalidFeed.textContent = 'Только ОДИН пробел допустим!';
901+
}
902+
// только английские буквы
903+
else if (/[а-яА-ЯёЁ]/.test(target.value)) {
904+
errors.push(
905+
'Некорректный ввод! Измените раскладку клавиатуры!'
906+
);
907+
target.classList.add('is-invalid');
908+
invalidFeed.textContent =
909+
'Некорректный ввод! Измените раскладку клавиатуры!';
910+
}
911+
// определение корректного ввода/никнейма
912+
else if (/[^a-zA-Z0-9@_:\-.$\s]/.test(target.value)) {
913+
errors.push(
914+
'Укажите доп. контакт, в формате: "название контакта: никнейм", без лишних символов!'
915+
);
916+
target.classList.add('is-invalid');
917+
invalidFeed.textContent =
918+
'Укажите доп. контакт, в формате: "название контакта: никнейм", без лишних символов!';
919+
}
920+
// исключение ввода более двух точек
921+
else if ((target.value.match(/\./g) || []).length > 2) {
922+
errors.push(
923+
'Доп. контакт не может содержать более двух точек!'
924+
);
925+
target.classList.add('is-invalid');
926+
invalidFeed.textContent =
927+
'Доп. контакт не может содержать более двух точек!';
928+
}
929+
// исключение ввода более трёх тире
930+
else if ((target.value.match(/-/g) || []).length > 3) {
931+
errors.push(
932+
'Доп. контакт не может содержать более трёх тире!'
933+
);
934+
target.classList.add('is-invalid');
935+
invalidFeed.textContent =
936+
'Доп. контакт не может содержать более трёх тире!';
937+
}
938+
// исключение ввода более десяти нижних подчёркиваний
939+
else if ((target.value.match(/_/g) || []).length > 10) {
940+
errors.push(
941+
'Доп. контакт не может содержать более десяти подчёркиваний!'
942+
);
943+
target.classList.add('is-invalid');
944+
invalidFeed.textContent =
945+
'Доп. контакт не может содержать более десяти подчёркиваний!';
946+
}
947+
// определение максимальной длины имени пользователя
948+
else if (target.value.length > 50) {
949+
errors.push(
950+
'Длинна "всего" доп. контакт должна быть не более 50 символов!'
951+
);
952+
target.classList.add('is-invalid');
953+
invalidFeed.textContent =
954+
'Длинна "всего" доп. контакт должна быть не более 50 символов!';
955+
}
956+
// определение с чего должен начинаться доп. контакт
957+
else if (!/^[a-zA-Z]/.test(target.value)) {
958+
errors.push(
959+
'Доп. контакт должен начинаться только с англ. букв! Типа: "Instagram: @user1"'
960+
);
961+
target.classList.add('is-invalid');
962+
invalidFeed.textContent =
963+
'Доп. контакт должен начинаться только с англ. букв! Типа: "Instagram: @user1"';
964+
}
965+
// если всё корректно (сообщений нет)
966+
else {
967+
invalidFeed.textContent = '';
968+
target.classList.remove('is-invalid');
969+
}
970+
break;
971+
888972
default:
889973
errors.push('Неизвестный тип контакта!');
890974
break;

0 commit comments

Comments
 (0)