【问题标题】:Failed to validate email address with regular expression无法使用正则表达式验证电子邮件地址
【发布时间】:2016-01-21 06:25:19
【问题描述】:

我想运行我的页面来测试我的验证是否有效。但是,它不适用于电子邮件地址。我为电子邮件地址添加了正则表达式。它没有完全验证。

我输入a@live 没有输入.com 它能够接受它。我认为这是因为我输入了input="email" 纠正我错了。是因为错误的正则表达式还是我放置代码的方式?

javascript

function validate(){
     var fname =  document.getElementById('fname').value;
         var lname =  document.getElementById('lname').value;
    var email =  document.getElementById('email').value;
         var emailReg = '/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/';
    var re = /^[\w ]+$/;
         var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

     if(email=="")
     {
        alert('Please fill in email fields');   
        return false;
     } 
 else if(fname=="")
     {
        alert('Please fill in first name fields');  
        return false;
     } 
     else if(lname=="")
     {
        alert('Please fill in last name fields');   
        return false;
     } 
     return true;
}

register.php

    <form name="registrationForm" method="post" id="registrationForm" class="registrationForm" action="processRegister.php" onclick="validate">
        <div class='input1'>
            <span id="emailAddress-label" class="help"></span> 
              <input class="regemailaddr" id="emailAddress" name="emailAddress" type="email" placeholder="Email Address " value="" required>
        </div>
          <br> 
            <span id="fname-label" style="margin-bottom:" class="help"></span>
                <input id="fname" name="fname" type="text" placeholder="First Name " class="fname" value="" required>
            <span id="lname-label" class="help"></span> <input id="lname" name="lname" type="text" placeholder="Last Name " class="lname" value="<?php echo $user_profile["lname"]; ?>" required> 
          <br>
               <button class="greybtn" type="submit" id="submitButton">Submit</button>
                <button class="cancelbtn" type="button" id="cancelButton" onclick="window.location='#';return false;">Cancel</button>
</form>

【问题讨论】:

  • live 是一个有效的主机名,a@live 是一个完全有效的电子邮件?
  • 您在哪里针对正则表达式测试输入?
  • 我试着在表单中输入这个并点击提交按钮,它接受了。这就是为什么我不知道为什么它可以接受,因为我没有输入正确格式的电子邮件。
  • 对不起,我不明白你@user2181397
  • 检查此链接stackoverflow.com/questions/46155/… 也是 Eric J 给出的答案。您需要测试您的输入

标签: javascript regex validation email-validation


【解决方案1】:

你已经定义了一个正则表达式

var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

但你没有针对它进行测试

var isEmail = emailReg.test(email);

【讨论】:

  • 我应该在函数 validate() 中测试它?
  • 小提琴中根本没有调用您的 validate() 函数。尝试发出警报('称为');作为 validate() 的第一行。此外,您实际上并没有在 if...else if... 逻辑中检查 isValid 。你需要这样做。使用 onsubmit 使小提琴工作存在一些问题。 stackoverflow.com/questions/30750369/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2011-02-14
  • 1970-01-01
  • 2015-08-24
  • 2021-05-02
相关资源
最近更新 更多