Javascript 如何验证允许在@symbol前后指定点数的电子邮件
我使用此条件检查用户在文本框中输入的电子邮件验证,我如何验证它,就像它允许3或4或任何特定数量的点允许ex abc.abc.abc。abc@abc.abc.com在@之前和之后,但不允许点在一起,例如:abc@abc...com. 另外,不允许在电子邮件中使用空格。您对这种验证有何想法?我建议使用正则表达式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
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
}
}