简体   繁体   English

如何创建一个函数来使用 Javascript 验证电子邮件和用户名?

[英]How can I create a function to validate an email and a username with a Javascript?

I'm very new in coding.我在编码方面很新。 I'm creating a newsletter form and I'll need people to register by entering a name (only letters) and a valid email address.I'm trying to create a javascript function but it does not work properly.我正在创建一个时事通讯表格,我需要人们通过输入姓名(仅限字母)和有效的电子邮件地址进行注册。我正在尝试创建一个 javascript 函数,但它无法正常工作。 Function is:功能是:

function validaIscrizione(username,email) {

        var nameRegex = /^[a-zA-Z\-]+$/
        var emailRegex = /^(([^<>()[\]\\.,;:\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,}))$/

        if(
        username==''|| username==undefined || nameRegex.test(username)||
        email== '' || email == undefined || emailRegex.test(email)
      )
        {return false;}

      else{return true;}  

}




var button = document.getElementById('btn_1');

button.onclick=function(){
  var login=document.getElementById('username').value;
  var password=document.getElementById('email').value;
  var result = document.getElementById('result');

      if(validaIscrizione(username,email)){
result.innerHTML = "Grazie per aver effettuato la registrazione";
      }else{
        result.innerHTML = "Dati non validi";
      }
}

"

am I missing something?我错过了什么吗? Thank you in advance先感谢您

I modify a little your validate function and put comments with the explanation:我稍微修改了您的验证功能,并在解释中添加了注释:

function validaIscrizione(username, email) {
  const nameRegex = /^[a-zA-Z\-]+$/;
  const emailRegex = /^(([^<>()[\]\\.,;:\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,}))$/;

// here you use short circuit for the falsy values like "" or undefined and validate the regex
  const isUsernameValid = username && nameRegex.test(username);
  const isEmailValid = email && emailRegex.test(email);

// here you return that is valid only if the two inputs pass your tests
  return isUsernameValid && isEmailValid;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM