Skip to content

Commit 4b24632

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

File tree

1 file changed

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

1 file changed

+81
-0
lines changed

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

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,87 @@
715715
invalidFeed.textContent =
716716
'После "id" должны быть только цифры!';
717717
}
718+
// определение максимальной длины id
719+
else if (target.value.length > 32) {
720+
errors.push('Vk "id" должен быть не более 32 символов!');
721+
target.classList.add('is-invalid');
722+
invalidFeed.textContent =
723+
'Vk "id" должен быть не более 32 символов!';
724+
}
725+
// если всё корректно (сообщений нет)
726+
else {
727+
invalidFeed.textContent = '';
728+
target.classList.remove('is-invalid');
729+
}
730+
break;
731+
732+
case 'facebook':
733+
// первичная проверка на "пустое" поле ввода (выход из проверки соответствия)
734+
if (target.value === '') {
735+
invalidFeed.textContent = '';
736+
target.classList.remove('is-invalid');
737+
break;
738+
}
739+
740+
// ряд проверок для вводимых данных (определённые условия для ввода)
741+
if (/\s/.test(target.value)) {
742+
errors.push('Пробелы недопустимы!'); // исключение пробелов
743+
target.classList.add('is-invalid');
744+
invalidFeed.textContent = 'Пробелы недопустимы!';
745+
}
746+
// только английские буквы
747+
else if (/[а-яА-ЯёЁ]/.test(target.value)) {
748+
errors.push(
749+
'Некорректный ввод! Измените раскладку клавиатуры!'
750+
);
751+
target.classList.add('is-invalid');
752+
invalidFeed.textContent =
753+
'Некорректный ввод! Измените раскладку клавиатуры!';
754+
}
755+
// определение корректного ввода/никнейма
756+
else if (/[^a-zA-Z0-9@_\-.$]/.test(target.value)) {
757+
errors.push('Укажите корректный никнейм, например: user1');
758+
target.classList.add('is-invalid');
759+
invalidFeed.textContent =
760+
'Укажите корректный никнейм, например: user1';
761+
}
762+
// исключение ввода более двух точек
763+
else if ((target.value.match(/\./g) || []).length > 2) {
764+
errors.push('Никнейм не может содержать более двух точек!');
765+
target.classList.add('is-invalid');
766+
invalidFeed.textContent =
767+
'Никнейм не может содержать более двух точек!';
768+
}
769+
// исключение ввода более пяти тире
770+
else if ((target.value.match(/-/g) || []).length > 5) {
771+
errors.push('Никнейм не может содержать более пяти тире!');
772+
target.classList.add('is-invalid');
773+
invalidFeed.textContent =
774+
'Никнейм не может содержать более пяти тире!';
775+
}
776+
// исключение ввода более десяти нижних подчёркиваний
777+
else if ((target.value.match(/_/g) || []).length > 10) {
778+
errors.push(
779+
'Никнейм не может содержать более десяти подчёркиваний!'
780+
);
781+
target.classList.add('is-invalid');
782+
invalidFeed.textContent =
783+
'Никнейм не может содержать более десяти подчёркиваний!';
784+
}
785+
// определение максимальной длины никнейма
786+
else if (target.value.length > 50) {
787+
errors.push('Никнейм должен быть не более 50 символов!');
788+
target.classList.add('is-invalid');
789+
invalidFeed.textContent =
790+
'Никнейм должен быть не более 50 символов!';
791+
}
792+
// определение с чего должен начинаться никнейм
793+
else if (!/^[a-zA-Z0-9]/.test(target.value)) {
794+
errors.push('Никнейм должен начинаться с буквы или цифры!');
795+
target.classList.add('is-invalid');
796+
invalidFeed.textContent =
797+
'Никнейм должен начинаться с буквы или цифры!';
798+
}
718799
// если всё корректно (сообщений нет)
719800
else {
720801
invalidFeed.textContent = '';

0 commit comments

Comments
 (0)