@Frostik12

Just validate Номер телефона?

Добрый день, подскажите как поставить правило чтобы номер телефона пропускал только тогда, когда номер введен полностью? Сейчас пропускает даже при 1 цифре

var selector = document.querySelector("input[type='tel']");
		var im = new Inputmask("+7 (999)-999-99-99");
		im.mask(selector);

		new JustValidate('.validate__form', {
			rules: {
				name: {
					required: true,
					minLength: 2,
					maxLength: 30

				},
				tel: {
					required: true,
					
				},


			},
			messages: {
				name: {
					required: 'Как вас зовут?',
					minLength: 'Поле должно содержать минимум 2 символа'
				},
				tel: {
					required: 'Укажите ваш телефон'
				},


			},
			colorWrong: '#7943A4'

		});
  • Вопрос задан
  • 2226 просмотров
Пригласить эксперта
Ответы на вопрос 3
@just_v
Frontend dev
.addField('#phone', [
{
validator: function(name, value) {
const phone = selector.inputmask.unmaskedvalue()
return Number(phone) && phone.length === 10
},
errorMessage: 'Номер должен содержать 10 цифр',
}
])
Ответ написан
Комментировать
@mletov
Если по-быстрому, то для tel задать minLength и maxLength
Если по-нормальному, то гуглить "JustValidate + Regex"

Вот, например, исходники

https://github.com/horprogs/Just-validate/blob/mas...
В них есть и правило для телефона, если не нравится, то можно свое написать

this.REGEXP = {
            // eslint-disable-next-line max-len
            email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
            zip: /^\d{5}(-\d{4})?$/,
            phone: /^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$/,
            password: /[^\w\d]*(([0-9]+.*[A-Za-z]+.*)|[A-Za-z]+.*([0-9]+.*))/,
            strengthPass: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]/,
        };


UPDATE
Там есть настраиваемые правила

Rules
required - Required field, not empty
email - Check a valid email address
minLength - Limit the minimum value
maxLength - Limit the maximum value
password - At least 1 letter and 1 digit
zip - 4-5 digits
phone - Format 111-222-3333
remote - validate value via remote api
strength - validate field for default or custom regexp
function - provide your own validation function


function
Ответ написан
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Лучшее, что я видел — https://intl-tel-input.com/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы