logistic uploaded for doormile
This commit is contained in:
173
assets/javascript/mailcheck.min.js
vendored
Normal file
173
assets/javascript/mailcheck.min.js
vendored
Normal file
@@ -0,0 +1,173 @@
|
||||
/*! mailcheck v1.1.2 @licence MIT */
|
||||
var Mailcheck = {
|
||||
domainThreshold: 2,
|
||||
secondLevelThreshold: 2,
|
||||
topLevelThreshold: 2,
|
||||
defaultDomains: ["msn.com", "bellsouth.net", "telus.net", "comcast.net", "optusnet.com.au", "earthlink.net", "qq.com", "sky.com", "icloud.com", "mac.com", "sympatico.ca", "googlemail.com", "att.net", "xtra.co.nz", "web.de", "cox.net", "gmail.com", "ymail.com", "aim.com", "rogers.com", "verizon.net", "rocketmail.com", "google.com", "optonline.net", "sbcglobal.net", "aol.com", "me.com", "btinternet.com", "charter.net", "shaw.ca"],
|
||||
defaultSecondLevelDomains: ["yahoo", "hotmail", "mail", "live", "outlook", "gmx"],
|
||||
defaultTopLevelDomains: ["com", "com.au", "com.tw", "ca", "co.nz", "co.uk", "de", "fr", "it", "ru", "net", "org", "edu", "gov", "jp", "nl", "kr", "se", "eu", "ie", "co.il", "us", "at", "be", "dk", "hk", "es", "gr", "ch", "no", "cz", "in", "net", "net.au", "info", "biz", "mil", "co.jp", "sg", "hu", "uk"],
|
||||
run: function(a) {
|
||||
a.domains = a.domains || Mailcheck.defaultDomains,
|
||||
a.secondLevelDomains = a.secondLevelDomains || Mailcheck.defaultSecondLevelDomains,
|
||||
a.topLevelDomains = a.topLevelDomains || Mailcheck.defaultTopLevelDomains,
|
||||
a.distanceFunction = a.distanceFunction || Mailcheck.sift4Distance;
|
||||
var b = function(a) {
|
||||
return a
|
||||
}
|
||||
, c = a.suggested || b
|
||||
, d = a.empty || b
|
||||
, e = Mailcheck.suggest(Mailcheck.encodeEmail(a.email), a.domains, a.secondLevelDomains, a.topLevelDomains, a.distanceFunction);
|
||||
return e ? c(e) : d()
|
||||
},
|
||||
suggest: function(a, b, c, d, e) {
|
||||
a = a.toLowerCase();
|
||||
var f = this.splitEmail(a);
|
||||
if (c && d && -1 !== c.indexOf(f.secondLevelDomain) && -1 !== d.indexOf(f.topLevelDomain))
|
||||
return !1;
|
||||
var g = this.findClosestDomain(f.domain, b, e, this.domainThreshold);
|
||||
if (g)
|
||||
return g == f.domain ? !1 : {
|
||||
address: f.address,
|
||||
domain: g,
|
||||
full: f.address + "@" + g
|
||||
};
|
||||
var h = this.findClosestDomain(f.secondLevelDomain, c, e, this.secondLevelThreshold)
|
||||
, i = this.findClosestDomain(f.topLevelDomain, d, e, this.topLevelThreshold);
|
||||
if (f.domain) {
|
||||
g = f.domain;
|
||||
var j = !1;
|
||||
if (h && h != f.secondLevelDomain && (g = g.replace(f.secondLevelDomain, h),
|
||||
j = !0),
|
||||
i && i != f.topLevelDomain && "" !== f.secondLevelDomain && (g = g.replace(new RegExp(f.topLevelDomain + "$"), i),
|
||||
j = !0),
|
||||
j)
|
||||
return {
|
||||
address: f.address,
|
||||
domain: g,
|
||||
full: f.address + "@" + g
|
||||
}
|
||||
}
|
||||
return !1
|
||||
},
|
||||
findClosestDomain: function(a, b, c, d) {
|
||||
d = d || this.topLevelThreshold;
|
||||
var e, f = 1 / 0, g = null;
|
||||
if (!a || !b)
|
||||
return !1;
|
||||
c || (c = this.sift4Distance);
|
||||
for (var h = 0; h < b.length; h++) {
|
||||
if (a === b[h])
|
||||
return a;
|
||||
e = c(a, b[h]),
|
||||
f > e && (f = e,
|
||||
g = b[h])
|
||||
}
|
||||
return d >= f && null !== g ? g : !1
|
||||
},
|
||||
sift4Distance: function(a, b, c) {
|
||||
if (void 0 === c && (c = 5),
|
||||
!a || !a.length)
|
||||
return b ? b.length : 0;
|
||||
if (!b || !b.length)
|
||||
return a.length;
|
||||
for (var d = a.length, e = b.length, f = 0, g = 0, h = 0, i = 0, j = 0, k = []; d > f && e > g; ) {
|
||||
if (a.charAt(f) == b.charAt(g)) {
|
||||
i++;
|
||||
for (var l = !1, m = 0; m < k.length; ) {
|
||||
var n = k[m];
|
||||
if (f <= n.c1 || g <= n.c2) {
|
||||
l = Math.abs(g - f) >= Math.abs(n.c2 - n.c1),
|
||||
l ? j++ : n.trans || (n.trans = !0,
|
||||
j++);
|
||||
break
|
||||
}
|
||||
f > n.c2 && g > n.c1 ? k.splice(m, 1) : m++
|
||||
}
|
||||
k.push({
|
||||
c1: f,
|
||||
c2: g,
|
||||
trans: l
|
||||
})
|
||||
} else {
|
||||
h += i,
|
||||
i = 0,
|
||||
f != g && (f = g = Math.min(f, g));
|
||||
for (var o = 0; c > o && (d > f + o || e > g + o); o++) {
|
||||
if (d > f + o && a.charAt(f + o) == b.charAt(g)) {
|
||||
f += o - 1,
|
||||
g--;
|
||||
break
|
||||
}
|
||||
if (e > g + o && a.charAt(f) == b.charAt(g + o)) {
|
||||
f--,
|
||||
g += o - 1;
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
f++,
|
||||
g++,
|
||||
(f >= d || g >= e) && (h += i,
|
||||
i = 0,
|
||||
f = g = Math.min(f, g))
|
||||
}
|
||||
return h += i,
|
||||
Math.round(Math.max(d, e) - h + j)
|
||||
},
|
||||
splitEmail: function(a) {
|
||||
a = null !== a ? a.replace(/^\s*/, "").replace(/\s*$/, "") : null;
|
||||
var b = a.split("@");
|
||||
if (b.length < 2)
|
||||
return !1;
|
||||
for (var c = 0; c < b.length; c++)
|
||||
if ("" === b[c])
|
||||
return !1;
|
||||
var d = b.pop()
|
||||
, e = d.split(".")
|
||||
, f = ""
|
||||
, g = "";
|
||||
if (0 === e.length)
|
||||
return !1;
|
||||
if (1 == e.length)
|
||||
g = e[0];
|
||||
else {
|
||||
f = e[0];
|
||||
for (var h = 1; h < e.length; h++)
|
||||
g += e[h] + ".";
|
||||
g = g.substring(0, g.length - 1)
|
||||
}
|
||||
return {
|
||||
topLevelDomain: g,
|
||||
secondLevelDomain: f,
|
||||
domain: d,
|
||||
address: b.join("@")
|
||||
}
|
||||
},
|
||||
encodeEmail: function(a) {
|
||||
var b = encodeURI(a);
|
||||
return b = b.replace("%20", " ").replace("%25", "%").replace("%5E", "^").replace("%60", "`").replace("%7B", "{").replace("%7C", "|").replace("%7D", "}")
|
||||
}
|
||||
};
|
||||
"undefined" != typeof module && module.exports && (module.exports = Mailcheck),
|
||||
"function" == typeof define && define.amd && define("mailcheck", [], function() {
|
||||
return Mailcheck
|
||||
}),
|
||||
"undefined" != typeof window && window.jQuery && !function(a) {
|
||||
a.fn.mailcheck = function(a) {
|
||||
var b = this;
|
||||
if (a.suggested) {
|
||||
var c = a.suggested;
|
||||
a.suggested = function(a) {
|
||||
c(b, a)
|
||||
}
|
||||
}
|
||||
if (a.empty) {
|
||||
var d = a.empty;
|
||||
a.empty = function() {
|
||||
d.call(null, b)
|
||||
}
|
||||
}
|
||||
a.email = this.val(),
|
||||
Mailcheck.run(a)
|
||||
}
|
||||
}(jQuery);
|
||||
Reference in New Issue
Block a user