如何验证允许@符号前后的特定点数的电子邮件

时间:2013-10-25 05:46:32

标签: javascript php

var val_em=document.add_indus_detail_form.txt_email.value;
var atpos=val_em.indexOf("@");
var dotpos=val_em.lastIndexOf(".");
if(val_em!='')
{
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=val_em.length)
      {
      alert("Not a valid e-mail address");
      return false;
      }
    }       

我使用此条件检查用户在文本框中输入的电子邮件验证如何验证它,例如它允许3或4或任何特定数量的点允许(ex abc.abc.abc.abc@abc.abc。 com)@之前和之后但不允许这些点在一起(例如:abc @ abc ... com)。也不要允许电子邮件中的空格如何让您知道这种类型的验证..

2 个答案:

答案 0 :(得分:0)

我建议使用正则表达式

function validateEmail(email){
    var emailReg = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    var valid = emailReg.test(email);
    if(!valid) {
        return false;
    } else {
        return true;
    }
}

在您需要时调用函数validateEmail ....

答案 1 :(得分:-1)

JavaScript中的验证毫无用处。用户可以关闭JS,或者您遇到的浏览器甚至无法理解JS。这使您的页面容易受到攻击。因此,千万不要使用JS来验证用户输入。

你想要的是RegEx或许多if条件和字符串函数。我的方法:使用For-Loop,逐个查看字符串,检查当前字符和后面的字符。像这样:

for($i = 0; $i < strlen($string); $i++) {
    if(substr($string, 0, 1) == '.' {
        //do something
    }
}