как я могу получить Javascript, чтобы узнать адрес электронной почты? - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь дать текстовому полю двойную функцию. Поэтому, если вы введете в него, скажем, 12345, он найдет соответствующие данные. Но если вы вводите адрес электронной почты или, по существу, что-нибудь в формате XXX@XXX.XXX, я хочу, чтобы поле пароля и кнопка появлялись. Я пытался использовать регулярные выражения, но по какой-то причине это не работает, и все распознается как электронная почта, поэтому даже 12345 открывает вход в систему вещей. Вы можете помочь мне? Я пытался понять суть фрагментов.

function imgMain() {
  var iDCode = document.getElementById("IDQuery").value;
  var mail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;

  if (iDCode = mail) {
    console.log("this is a mail");
    document.getElementById("passwordDiv").style.display = "block";
    document.getElementById("loginbuttonDiv").style.display = "block";
    document.getElementById("SeeSlide").style.display = "none";
  } else {
    console.log("this is not a mail")
  }
}
<div id="QueryField">
  <input type="text" id="IDQuery" placeholder="ID Kode">

  <div style="display: none" id=passwordDiv><input type="password" id="passwordfield"><br></div>
  <div style="display: none" id=loginbuttonDiv><button id="login" onclick="login()">log ind</button><br></div>

  <button id="SeeSlide" onclick="imgMain()">Se Slide</button><br>
  <br><br><br><br>
</div>

Ответы [ 5 ]

0 голосов
/ 03 марта 2020

Несколько разных способов. Вы можете отправить электронное письмо на этот адрес и проверить, возвращается ли он, или вы можете использовать PHP (я сомневаюсь, что вы хотите сделать это, так как ваш вопрос JavaScript) и отправить электронное письмо, а затем попросить его подтвердить это в Интернете. адрес. Честно говоря, PHP - лучший способ сделать это, но так как вы используете JS, вы можете попробовать это из https://www.w3resource.com/javascript/form/email-validation.php:

function ValidateEmail(mail) {
 if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.emailAddr.value)) {
    return (true)
 }
 alert("You have entered an invalid email address!")
 return (false)
}

Это работает, потому что мы проверка всех недопустимых символов в адресе электронной почты. Если поле ввода содержит какой-либо из этих символов, оно недопустимо.

Попробуйте найти ответ в Google. Есть много информации: https://www.google.com/search?rlz=1C1GCEB_enUS865US865&ei=bn9dXuefDanJ0PEPofOHyAg&q=javacsript+check+email+address&oq=javacsript+check+email+address&gs_l=psy-ab.3..0i71l8.2549.3358..3533...0.2..0.0.0.......12....1..gws-wiz.........23%3A11-12j24%3A11-2.1hEMZpGGmWs&ved=0ahUKEwjnjr7N4vznAhWpJDQIHaH5AYkQ4dUDCAw&uact=5&safe=active&ssui=on

0 голосов
/ 03 марта 2020

В вашем операторе if имеется if (iDCode = mail).

. Это повторно присваивает значение mail переменной iDCode. Таким образом, if фактически становится if(mail), что всегда true, потому что объекты RegEx являются правдивыми.

Вместо этого следует проверить, соответствует ли ввод регулярному выражению с использованием mail.test(iDCode) или iDCode.match(mail)

0 голосов
/ 03 марта 2020

Вы можете попробовать эту версию, она основана на w3resource .

function imgMain() {
  var iDCode = document.getElementById("IDQuery").value;
  var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

  if (iDCode.match(mailformat)) {
    console.log("this is a mail");
    document.getElementById("passwordDiv").style.display = "block";
    document.getElementById("loginbuttonDiv").style.display = "block";
    document.getElementById("SeeSlide").style.display = "none";
  } else {
    console.log("this is not a mail")
  }
}
<div id="QueryField">
  <input type="text" id="IDQuery" placeholder="ID Kode">

  <div style="display: none" id=passwordDiv><input type="password" id="passwordfield"><br></div>
  <div style="display: none" id=loginbuttonDiv><button id="login" onclick="login()">log ind</button><br></div>

  <button id="SeeSlide" onclick="imgMain()">Se Slide</button><br>
  <br><br><br><br>
</div>
0 голосов
/ 03 марта 2020

Вы можете попробовать использовать функцию .validate. Он отлично работает для проверки форм входа в систему. Функция может выглядеть следующим образом:

$("#IDQuery").validate({
    rules: {
        email:
            {required: true, email: true},
        password:
            {required: true}
        },
    messages: {
        email:
        {required: 'Please enter a E-mail',
        email: 'Please enter a valid E-mail'},
        password:{required: 'Please enter a password'}
    },
    errorPlacement: function (error, element) {
        error.insertAfter(element.parent());
    }
});
0 голосов
/ 03 марта 2020

пользователь mail.test () с соответствующим регулярным выражением, например

let mail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(mail.test(iDCode)){
      alert("Valid email is required")
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...