Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何验证允许在@symbol前后指定点数的电子邮件_Javascript_Php - Fatal编程技术网

Javascript 如何验证允许在@symbol前后指定点数的电子邮件

Javascript 如何验证允许在@symbol前后指定点数的电子邮件,javascript,php,Javascript,Php,我使用此条件检查用户在文本框中输入的电子邮件验证,我如何验证它,就像它允许3或4或任何特定数量的点允许ex abc.abc.abc。abc@abc.abc.com在@之前和之后,但不允许点在一起,例如:abc@abc...com. 另外,不允许在电子邮件中使用空格。您对这种验证有何想法?我建议使用正则表达式 var val_em=document.add_indus_detail_form.txt_email.value; var atpos=val_em.indexOf("@"); var d

我使用此条件检查用户在文本框中输入的电子邮件验证,我如何验证它,就像它允许3或4或任何特定数量的点允许ex abc.abc.abc。abc@abc.abc.com在@之前和之后,但不允许点在一起,例如:abc@abc...com. 另外,不允许在电子邮件中使用空格。您对这种验证有何想法?

我建议使用正则表达式

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;
      }
    }       

需要时调用函数validateEmail…

JavaScript中的验证是无用的。用户可以关闭JS,或者你遇到一个甚至不懂JS的浏览器。这使您的页面容易受到攻击。因此,永远不要使用JS来验证用户输入

您需要的是正则表达式或多个if条件以及字符串函数。我的方法是:使用For循环,逐个检查字符串,检查当前字符及其后的字符。像这样:

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;
    }
}

改为检查服务器上的电子邮件地址。在现代浏览器中,您也可以使用它来帮助客户端验证。在客户端和服务器端都进行验证。若用户遗漏了什么,让JS查找并报告会更快。您将始终在服务器上进行验证,但这些不必要的往返行程将减少到最低限度。ya但type=电子邮件在Internet Explorer 9和早期版本中不受支持三个点加在一起或总共三个点?总共三个点,不应放在一起Ex:1xyz.xyz。xyz@com.com.com.com允许1xyz..@com..com不允许3xyz.xyz.xyz。xyz@com.com或4xyz.xyz。xyz@com.com.com.com.com两者都不允许,因为在rd示例中,它在@之前包含4个点,在第4示例中,它在@之后包含4个点。这是我不想允许的。请告诉我这是怎么可能的。
for($i = 0; $i < strlen($string); $i++) {
    if(substr($string, 0, 1) == '.' {
        //do something
    }
}