如何验证电子邮件地址与网站域匹配? [英] How to validate email address match with website domain?
问题描述
我在表单上有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屋!