Задать вопрос

Не проверяет номер телефона. В чем ошибка?

Когда поле находится в фокусе и если поле было пустым, должно появится значение +7, если уже было введено какое-либо значение, это не выполняется. Далее, после снятия фокуса с поля, появляются 2 сообщения о том, что поле было покинуто и само введенное значение, выполнятся сравнение введенного значения с регулярным выражением (проверяла правильность шаблона в редакторе регулярных выражений), если функция возвращает true, появляется сообщение о совпадении, иначе о не совпадении и поле выделяется красным, а внизу поля появляется еще одно сообщение.
Проверка, похоже, вообще не происходит, потому что у меня выпадает только первые два сообщения, о покидании поля и значение поля.
<input type="text" name="telephone" id="telephone" onfocus="focusTelephone(this.value)" onblur="checkTelephone(this.value)" placeholder="Телефон" /><br />
<span id="error_telephone" style="display:none; color:red"></span>

function focusTelephone(box) {
	if (box == "") {
		$("#telephone").val("+7")
	};
}

function checkTelephone(telephone) {
	alert("Вы покинули поле телефона!");
	alert(telephone);

	let format = new RegExp("^(\+7)+([0-9]{10})$");
	let error_tel = "Номер телефона введён некорректно! Пример ввода: +70000000000<br />";

	if (format.test(telephone) == true) {
		alert("Match");
		$("#telephone").css("border-color", "green");
		$("#error_telephone").html("");
		$("#error_telephone").css("display", "none");
	} else {
		alert("Not match");
		$("#telephone").css("border-color", "red");
		$("#error_telephone").html(error_tel);
		$("#error_telephone").css("display", "block");
	};
}



*я добавила еще поле email, чтобы было видно, ошибки в формулировке кода нет
**выводится ошибка в регулярном выражении, но повторюсь, я проверяла его в редакторе
***если регулярное выражение для номера телефона ^(\+7)+([0-9]{10})$ заменить на ^(\+7) или \d{12}, то проверка выполняется, но собственно, регулярное выражение не верное, мне необходимо, чтобы номер телефона начинался с +7, а остальная часть состояла из цифр без пробелов, скобок и тире
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Средний 8 комментариев
Решения вопроса 1
SophiaS
@SophiaS Автор вопроса
Регулярное выражение для номера телефона по данному условию выглядит так:
^[\+][7]{1}[0-9]{10}$
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@lolzqq
HTML,CSS,JS,PHP
Упрощённо работает так
Ответ написан
Комментировать
402d
@402d
начинал с бейсика на УКНЦ в 1988
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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