Skip to content

Commit 51cb6e4

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

File tree

1 file changed

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

1 file changed

+72
-2
lines changed

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

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -804,14 +804,84 @@
804804
break;
805805

806806
case 'twitter':
807+
// первичная проверка на "пустое" поле ввода (выход из проверки соответствия)
807808
if (target.value === '') {
808-
errors.length = 0;
809+
invalidFeed.textContent = '';
810+
target.classList.remove('is-invalid');
809811
break;
810812
}
811-
if (!/^@[a-zA-Z0-9_]+$/.test(target.value)) {
813+
814+
// ряд проверок для вводимых данных (определённые условия для ввода)
815+
if (/\s/.test(target.value)) {
816+
errors.push('Пробелы недопустимы!'); // исключение пробелов
817+
target.classList.add('is-invalid');
818+
invalidFeed.textContent = 'Пробелы недопустимы!';
819+
}
820+
// только английские буквы
821+
else if (/[а-яА-ЯёЁ]/.test(target.value)) {
822+
errors.push(
823+
'Некорректный ввод! Измените раскладку клавиатуры!'
824+
);
825+
target.classList.add('is-invalid');
826+
invalidFeed.textContent =
827+
'Некорректный ввод! Измените раскладку клавиатуры!';
828+
}
829+
// определение корректного ввода/никнейма
830+
else if (/[^a-zA-Z0-9@_\-.$]/.test(target.value)) {
812831
errors.push(
813832
'Укажите корректное имя пользователя, например: @Im_123'
814833
);
834+
target.classList.add('is-invalid');
835+
invalidFeed.textContent =
836+
'Укажите корректное имя пользователя, например: @Im_123';
837+
}
838+
// исключение ввода более двух точек
839+
else if ((target.value.match(/\./g) || []).length > 0) {
840+
errors.push('Имя пользователя не может содержать точки!');
841+
target.classList.add('is-invalid');
842+
invalidFeed.textContent =
843+
'Имя пользователя не может содержать точки!';
844+
}
845+
// исключение ввода более трёх тире
846+
else if ((target.value.match(/-/g) || []).length > 3) {
847+
errors.push(
848+
'Имя пользователя не может содержать более трёх тире!'
849+
);
850+
target.classList.add('is-invalid');
851+
invalidFeed.textContent =
852+
'Имя пользователя не может содержать более трёх тире!';
853+
}
854+
// исключение ввода более десяти нижних подчёркиваний
855+
else if ((target.value.match(/_/g) || []).length > 10) {
856+
errors.push(
857+
'Имя пользователя не может содержать более десяти подчёркиваний!'
858+
);
859+
target.classList.add('is-invalid');
860+
invalidFeed.textContent =
861+
'Имя пользователя не может содержать более десяти подчёркиваний!';
862+
}
863+
// определение максимальной длины имени пользователя
864+
else if (target.value.length > 15) {
865+
errors.push(
866+
'Имя пользователя должно быть не более 15 символов!'
867+
);
868+
target.classList.add('is-invalid');
869+
invalidFeed.textContent =
870+
'Имя пользователя должно быть не более 15 символов!';
871+
}
872+
// определение с чего должен начинаться имя пользователя
873+
else if (!/^[@]/.test(target.value)) {
874+
errors.push(
875+
'Имя пользователя должно начинаться только со знака "@"!'
876+
);
877+
target.classList.add('is-invalid');
878+
invalidFeed.textContent =
879+
'Имя пользователя должно начинаться только со знака "@"!';
880+
}
881+
// если всё корректно (сообщений нет)
882+
else {
883+
invalidFeed.textContent = '';
884+
target.classList.remove('is-invalid');
815885
}
816886
break;
817887

0 commit comments

Comments
 (0)