如何验证电子邮件地址与网站域匹配? [英] How to validate email address match with website domain?

查看:257
本文介绍了如何验证电子邮件地址与网站域匹配?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在表单上有2个输入字段:电子邮件和网站

I have 2 input fields on my form: email and website

如何使用JQuery验证电子邮件地址域必须与网站域匹配?

How do I use JQuery to validate the email address domain must matched with the website domain?

例如:如果网站是 http://example.com 或带有www或不带有http://或不带有 http://www . 然后,电子邮件地址字段必须为user@example.com

For example: if website is http://example.com or with www or without http:// or without http://www. Then the email address field must be user@example.com

这是我的表单 https://jsfiddle.net/zm7e8r7p/

$(document).ready(function(){
$( "#target" ).submit(function( event ) {

var val = $("#website").val();
var myString = val.substr(val.indexOf("http://") + 7);

var emailString = $("#email").val();
var myEmail = emailString.substr(emailString.indexOf("@")+1);

if (myString == myEmail){
$( "span" ).text( "Validated..." ).show();
event.preventDefault();
}else{
$( "span" ).text( "Not valid!" ).show();
event.preventDefault();

}

});
});

推荐答案

您可以通过仅获取域名的最后两个部分是可选的,如果要将ww2.mobile.gmail.com转换为gmail.com,则可以使用它.这种逻辑将影响@samanime指出的域名.co.in

Getting only last two parts of domain name is optional, you can use it if you want to convert ww2.mobile.gmail.com into gmail.com. This logic will affect domain names like .co.in as @samanime points out

var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
var url = 'www.mobile.ora.co.in:80/goodparts?q#fragment';

var result = parse_url.exec(url);

var hostName = result[3];

console.log("host name: ", hostName);

lastTwo = hostName.split('.');
lastTwo = lastTwo.length>2?lastTwo.slice(Math.max(lastTwo.length - 2, 1)) : lastTwo;
onlyMainDomain = lastTwo.join('.');

console.log('only main domain:', onlyMainDomain);

var email = "someone@ora.co.in";

var emailDomain = email.split('@')[1];

console.log('email domain:', emailDomain);

console.log("valid?" , emailDomain === onlyMainDomain);

//check if email domain is a child of hostName

emailDomainRev = emailDomain.split('.').reverse();
hostNameRev = hostName.split('.').reverse();
var emailDomainIsChildOfHostName = true;

if(emailDomainRev.length > hostNameRev.length){
  emailDomainIsChildOfHostName = false;
  }
else{
  emailDomainIsChildOfHostName = emailDomainRev.reduce(function(acc, item, index){
     return acc && (item === hostNameRev[index]);
  },true);
  }
console.log("email domain is a child of host name:", emailDomainIsChildOfHostName);

这篇关于如何验证电子邮件地址与网站域匹配?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆