Files
2026-05-28 12:09:28 +03:00

210 lines
6.5 KiB
JavaScript

function checkEmail(input, msg) {
if (window.validateEmail(input.value)) {
msg.innerHTML = '';
input.classList.remove('is-invalid');
input.classList.add('is-valid');
return false;
} else {
msg.innerHTML = '<span class="text-danger">поле является обязательным для заполнения</span>';
input.classList.remove('is-valid');
input.classList.add('is-invalid');
return true;
}
}
function checkPhone(input, msg) {
if (window.validatePhone(input.value)) {
msg.innerHTML = '';
input.classList.remove('is-invalid');
input.classList.add('is-valid');
return false;
} else {
msg.innerHTML = '<span class="text-danger">поле является обязательным для заполнения</span>';
input.classList.remove('is-valid');
input.classList.add('is-invalid');
return true;
}
}
function checkNotEmpty(input, msg) {
var valid = false;
if (input.value === '') {
msg.innerHTML = '<span class="text-danger">поле является обязательным для заполнения</span>';
input.classList.add('is-invalid');
input.classList.remove('is-valid');
valid = true;
} else {
msg.innerHTML = '';
input.classList.add('is-valid');
input.classList.remove('is-invalid');
}
return valid;
}
function checkTextRu(input, msg) {
var valid = false;
if (input.value === '') {
msg.innerHTML = '<span class="text-danger">поле является обязательным для заполнения</span>';
input.classList.add('is-invalid');
input.classList.remove('is-valid');
valid = true;
} else {
msg.innerHTML = '';
input.classList.add('is-valid');
input.classList.remove('is-invalid');
}
if (/[A-Za-z0-9]/.test(input.value)) {
msg.innerHTML = '<span class="text-danger">поле должно заполняться кириллицей</span>';
input.classList.add('is-invalid');
input.classList.remove('is-valid');
valid = true;
}
return valid;
}
function checkAccept(ckeckBox, msg) {
var valid = false;
if (ckeckBox.checked) {
msg.innerHTML = '';
ckeckBox.classList.add('is-valid');
ckeckBox.classList.remove('is-invalid');
} else {
msg.innerHTML = '<span class="text-danger">укажите согласие, на обработку персональных данных</span>';
ckeckBox.classList.add('is-invalid');
ckeckBox.classList.remove('is-valid');
valid = true;
}
return valid;
}
function checkDate(input, msg, range = false) {
var valid = false;
if (range) {
if (/^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.\d{4}.\-.(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.\d{4}$/.test(input.value)) {
msg.innerHTML = '';
input.classList.add('is-valid');
input.classList.remove('is-invalid');
} else {
msg.innerHTML = '<span class="text-danger">поле является обязательным для заполнения</span>';
input.classList.add('is-invalid');
input.classList.remove('is-valid');
valid = true;
}
} else {
if (/^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.\d{4}$/.test(input.value)) {
msg.innerHTML = '';
input.classList.add('is-valid');
input.classList.remove('is-invalid');
} else {
msg.innerHTML = '<span class="text-danger">поле является обязательным для заполнения</span>';
input.classList.add('is-invalid');
input.classList.remove('is-valid');
valid = true;
}
}
return valid;
}
function checkInt(input, msg) {
var valid = false;
if (/^\d+$/.test(input.value)) {
msg.innerHTML = '';
input.classList.add('is-valid');
input.classList.remove('is-invalid');
} else {
msg.innerHTML = '<span class="text-danger">поле является обязательным для заполнения</span>';
input.classList.add('is-invalid');
input.classList.remove('is-valid');
valid = true;
}
return valid;
}
function checkInn(input, msg) {
var valid = false;
if (input.value === '') {
msg.innerHTML = '<span class="text-danger">поле является обязательным для заполнения</span>';
input.classList.add('is-invalid');
input.classList.remove('is-valid');
valid = true;
} else {
if (is_valid_inn(input.value)) {
msg.innerHTML = '';
input.classList.add('is-valid');
input.classList.remove('is-invalid');
} else {
msg.innerHTML = '<span class="text-danger">проверьте правильность введённых данных</span>';
input.classList.add('is-invalid');
input.classList.remove('is-valid');
valid = true;
}
}
return valid;
}
function is_valid_inn(i) {
if ( i.match(/\D/) ) return false;
var inn = i.match(/(\d)/g);
if ( inn.length == 10 )
{
return inn[9] == String(((
2*inn[0] + 4*inn[1] + 10*inn[2] +
3*inn[3] + 5*inn[4] + 9*inn[5] +
4*inn[6] + 6*inn[7] + 8*inn[8]
) % 11) % 10);
}
else if ( inn.length == 12 )
{
return inn[10] == String(((
7*inn[0] + 2*inn[1] + 4*inn[2] +
10*inn[3] + 3*inn[4] + 5*inn[5] +
9*inn[6] + 4*inn[7] + 6*inn[8] +
8*inn[9]
) % 11) % 10) && inn[11] == String(((
3*inn[0] + 7*inn[1] + 2*inn[2] +
4*inn[3] + 10*inn[4] + 3*inn[5] +
5*inn[6] + 9*inn[7] + 4*inn[8] +
6*inn[9] + 8*inn[10]
) % 11) % 10);
}
return false;
}
function checkSmartCaptcha(token, msg) {
if (token === '') {
msg.innerHTML = '<span class="text-danger">Подтвердите, что Вы не робот</span>';
return true;
}
msg.innerHTML = '';
return false;
}
module.exports = {
checkInt: checkInt,
checkNotEmpty: checkNotEmpty,
checkDate: checkDate,
checkInn: checkInn,
checkAccept: checkAccept,
checkSmartCaptcha: checkSmartCaptcha,
checkTextRu: checkTextRu,
checkEmail: checkEmail,
checkPhone: checkPhone
};