Почему не работает проверка электронной почты моего регулярного выражения? - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь создать супер простой валидатор электронной почты с помощью регулярного выражения.Я проверил подобные вопросы здесь на SO, а также искал другие решения в других местах, например, W3resource.Я не уверен, что я что-то пропускаю или что-то набрал неправильно.У меня проблема в том, что если я введу правильный или неправильный адрес электронной почты, ничего не происходитНи одно из моих предупреждений не работает, и страница остается пустой.

Вот мой код Javascript.

function checkmail(inputText)
{
    var emailregex = /^\w[-._\w]*\w@\w[._\w]*\w\.\w{2,8}$/;
    if(inputText.value.match(emailregex)) {
        alert("You have entered a valid email address!");
        return true;
    } else {
        alert("You have entered an invalid email address!");
        return false;
    }
}

Вот мой соответствующий HTML-код.

        <div class="mail">
            <center>
                <p>Please enter an email address.</p>
                <form id="inputemail">
                    <input type='text' name='input'/>
                    <input type="submit" name="submit" value="Verify" onclick="checkmail(inputText)"/>
                </form>
            </center>
        </div>
        <script src="regexobj.js"></script>
    </body>
</html>

1 Ответ

0 голосов
/ 09 февраля 2019

Вам необходимо указать, откуда взять данные.В вашем коде у вас есть функция, которая определяет переменную «inputText».В вашем коде нет данных, отправляемых функции, и функция не может получить данные и возвращает ошибку.

Чтобы исправить это, вам нужно указать данные, которые вы хотите получить, например:

function checkmail(){
var input = document.querySelector("input[name='input']");
var emailregex = /^\w[-._\w]*\w@\w[._\w]*\w\.\w{2,8}$/;
  if(input.value.match(emailregex)) {
    alert("You have entered a valid email address!");
    return true;
  } else {
    alert("You have entered an invalid email address!");
    return false;
  }
}

В этом примере функция будет искать поле ввода с именем ввода.input.value будет содержать данные из поля ввода.

В вашем HTML-файле вам нужно изменить кнопку отправки на

<input type="submit" name="submit" value="Verify" onclick="checkmail()"/>

Я протестировал приведенный выше код, и он должен работать соответственно,Я надеюсь, что помог с вашей проблемой.

Редактировать: при отправке формы страница автоматически перезагрузится, если вы хотите остаться на той же странице и просто дать предупреждение, вы можете внести следующие изменения в ваш HTMLfile:

  • Удалите свойство onsubmit с помощью кнопки Отправить

<input type="submit" name="submit" value="Verify"/>

  • Добавьте следующую функцию onsmit в свою форму

onsubmit="event.preventDefault(); checkmail();"

Когда вы отправляете форму, форма сначала запрещает перезагрузку страницы, а затем выполняет вашу функцию.При нажатии на предупреждение страница не будет перезагружаться и удалять значения, введенные в форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...