Нужно проверить
Длину и вывести ошибку что длина не должна превышать 10 цифр начиная с кода оператора
какая цифра стоит после 8 или 7.Вывести что оператор должен начинаться с цифры 3, 4, 5, 6, 8, 9 если после 7 и 8 стоит другая цифра
const isValidMobile = value => {
const phoneMobile = /^[78]{0,1}[345689]/;
//value приходит в виде +790.... или в виде 890...
const isNotFullSevenPhoneInput =
/^\+7/.test(value) && value.replace(/[^\d]+/g, '').length < 12;
const isNotFullEightPhoneInput =
/^8/.test(value) && value.length < 11;
if (isNotFullSevenPhoneInput || isNotFullEightPhoneInput ) {
return phoneError.lengthError
}
const startWithCorrectSymbol =
(/^8/.test(value) && phoneMobile.test(value))
|| ( /^\+7/.test(value) &&
phoneMobile.test(value.replace(/[^\d]+/g, ''))) ;
if (!startWithCorrectSymbol) {
return phoneError.operatorError;
}
return '';
};
const phoneError = {
operatorError: 'Ошибка оператора',
lengthError: 'Ошибка длины'
};
const isValidMobile = value => {
const match = value.match(/^\+?(\d+)/);
// Обе проверки "от противного", то есть мы ищем не соответствие ожидаемому, а несоответствие
return !/^(?:\+7|8)[345689]/.test(value) // Проверяем, что НЕ начинается с ("+7" или "8", а следом идет одно из чисел `[345689]`)
? phoneError.operatorError // если это так, то возвращаем `phoneError.operatorError`
: match && match[1].length > 11 // Проверяем, что не считая возможно стоящего в начале "+" друг за другом идут числа (надо убедиться, что они вообще заматчились, иначе match[1] выдаст ошибку) и их больше 11
? phoneError.lengthError // если это так, то возвращаем `phoneError.lengthError`
: '';
};
console.log(isValidMobile('+790312222'));
console.log(isValidMobile('+720312222'));
console.log(isValidMobile('+7903122222222'));
console.log(isValidMobile('89022222'));
console.log(isValidMobile('81022222'));
console.log(isValidMobile('890222222222'));
По хорошему бы конечно ещё пару проверок добавить, но ошибок под несоответствие нет (как и условий в задаче), будем считать, что оно и не надо.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Доброго времени суток, господаПредварительно хотелось бы уточнить, что c js особо не дружим) В общем такая ситуация
После ajax запроса function(data) проверяю наличие нужного объекта
Через консоль PhpStorm выполняю установку: npm install --save-dev babel-cli, установился в корень настоящего проекта