-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathemail-validator.html
More file actions
137 lines (137 loc) · 10.1 KB
/
email-validator.html
File metadata and controls
137 lines (137 loc) · 10.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Free Email Validator — Syntax & Format Check</title>
<meta name="description" content="Validate email addresses for correct syntax, format, and common errors. Bulk validation supported. Free online email validator.">
<link rel="canonical" href="https://www.quicktools.mom/email-validator.html">
<meta property="og:title" content="">
<meta property="og:description" content="">
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.quicktools.mom/email-validator.html">
<meta name="twitter:card" content="summary">
<link rel="stylesheet" href="style.css">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2658921743607446" crossorigin="anonymous"></script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How does this validator work?","acceptedAnswer":{"@type":"Answer","text":"It checks email syntax against RFC 5322 standards, detects common typos (like 'gmail.con'), validates TLD formats, and flags structural issues. It runs entirely in your browser — no emails are sent or stored."}},{"@type":"Question","name":"Can it verify if an email exists?","acceptedAnswer":{"@type":"Answer","text":"No — this tool only validates the format and syntax of email addresses. Verifying whether a mailbox actually exists requires sending a request to the mail server, which this client-side tool cannot do."}}]}</script>
</head>
<body>
<div class="page-wrapper">
<header class="site-header"><a href="index.html" class="site-logo"><span class="icon">⚡</span> QuickTools</a><nav class="site-nav"><a href="index.html">All Tools</a></nav></header>
<div class="ad-zone ad-zone-top">Ad Space — 728×90</div>
<div class="tool-header">
<div class="tool-badge">✉️ Utility</div>
<h1>Email Validator</h1>
<p>Validate email addresses for correct syntax, common typos, and formatting errors.</p>
</div>
<div class="tool-card">
<label>Single Email Check</label>
<div style="display:flex;gap:0.5rem;">
<input type="text" id="singleEmail" value="user@example.com" oninput="validateSingle()" style="flex:1;font-size:1.1rem;">
<button class="btn btn-primary" onclick="validateSingle()">✓ Check</button>
</div>
<div id="singleResult" class="mt-2" style="font-size:0.9rem;padding:1rem;border-radius:var(--radius);min-height:50px;"></div>
</div>
<div class="tool-card">
<label>Bulk Validation (one email per line)</label>
<textarea id="bulkEmails" class="mono" rows="8" placeholder="john@example.com
jane@company.co.uk
invalid-email
test@.com
user@gmail.con">john@example.com
jane.doe@company.co.uk
bad-email-format
missing@.domain
user@gmail.con
test@yahoo..com
hello world@test.com
admin@localhost
valid+tag@gmail.com
no-at-sign.com</textarea>
<button class="btn btn-primary mt-2" onclick="validateBulk()">✓ Validate All</button>
<div id="bulkStats" class="stats-bar mt-2" style="display:none;">
<div class="stat-item"><span class="stat-value" id="totalCount">0</span><span class="stat-label">Total</span></div>
<div class="stat-item"><span class="stat-value text-success" id="validCount">0</span><span class="stat-label">Valid</span></div>
<div class="stat-item"><span class="stat-value text-danger" id="invalidCount">0</span><span class="stat-label">Invalid</span></div>
</div>
<div id="bulkResult" class="mt-2" style="max-height:400px;overflow-y:auto;"></div>
</div>
<div class="ad-zone">Ad Space — 336×280</div>
<div class="faq-section">
<h2> <div class="tool-card" style="max-width:720px;">
<h2 style="font-size:1rem;margin-bottom:0.75rem;">📖 About Email Validator</h2>
<p style="font-size:0.85rem;line-height:1.7;color:var(--text-muted);margin-bottom:0.75rem;">Email Validator is a free, browser-based tool built for developers, writers, and quality-focused professionals. Validate email addresses for correct syntax, format, and common errors. Bulk validation supported. Free online email validator. This tool processes everything locally using JavaScript — no data is uploaded to any server, no account is required, and there are no usage limits. Whether you’re working on a quick project or handling sensitive data, your privacy is fully protected. Perfect for quick tasks and professional workflows alike, this tool saves you time by eliminating the need for complex software or manual work. Bookmark this page and use it anytime — it works on desktop, tablet, and mobile devices.</p>
<h3 style="font-size:0.9rem;margin-bottom:0.5rem;">How to Use</h3>
<ol style="font-size:0.85rem;color:var(--text-muted);line-height:1.7;padding-left:1.2rem;">
<li><strong>Enter your data</strong> — Type, paste, or upload your input in the fields above.</li>
<li><strong>Configure options</strong> — Adjust any settings or parameters to match your requirements.</li>
<li><strong>Get instant results</strong> — Output updates automatically in real-time as you type.</li>
<li><strong>Copy or download</strong> — Use the Copy button to grab results, or download if available.</li>
</ol>
</div>
Frequently Asked Questions</h2>
<div class="faq-item"><h3>How does this validator work?</h3><p>It checks email syntax against RFC 5322 standards, detects common typos (like "gmail.con"), validates TLD formats, and flags structural issues. It runs entirely in your browser — no emails are sent or stored.</p></div>
<div class="faq-item"><h3>Can it verify if an email exists?</h3><p>No — this tool only validates the format and syntax of email addresses. Verifying whether a mailbox actually exists requires sending a request to the mail server, which this client-side tool cannot do.</p></div>
</div>
<div class="related-tools"><h2>Related Tools</h2><div class="related-grid">
<a href="regex-tester.html"><span class="tool-icon">⚙️</span> Regex Tester</a>
<a href="url-encoder.html"><span class="tool-icon">🔗</span> URL Encoder</a>
<a href="privacy-policy.html"><span class="tool-icon">📜</span> Privacy Policy</a>
<a href="text-cleaner.html"><span class="tool-icon">🧹</span> Text Cleaner</a>
</div></div>
<div class="ad-zone ad-zone-bottom">Ad Space — 728×90</div>
<footer class="site-footer"><p>© 2026 QuickTools.</p><div class="footer-links"><a href="index.html">All Tools</a><a href="#">Privacy</a></div></footer>
</div>
<script>
const typos={'gmail.con':'gmail.com','gmail.cm':'gmail.com','gmial.com':'gmail.com','gamil.com':'gmail.com','gmai.com':'gmail.com','yahoo.con':'yahoo.com','yaho.com':'yahoo.com','hotmail.con':'hotmail.com','outloo.com':'outlook.com','outlook.con':'outlook.com'};
function validateEmail(email){
email=email.trim();const issues=[];
if(!email)return{valid:false,issues:['Empty input']};
if(email.includes(' '))issues.push('Contains spaces');
if(!email.includes('@'))return{valid:false,issues:['Missing @ symbol']};
const parts=email.split('@');
if(parts.length>2)issues.push('Multiple @ symbols');
const[local,domain]=parts;
if(!local)issues.push('Missing local part (before @)');
if(!domain)return{valid:false,issues:['Missing domain']};
if(domain.startsWith('.'))issues.push('Domain starts with dot');
if(domain.includes('..'))issues.push('Domain has consecutive dots');
if(!domain.includes('.'))issues.push('Domain missing TLD');
const tld=domain.split('.').pop().toLowerCase();
if(tld&&tld.length<2)issues.push('TLD too short');
if(tld&&!/^[a-z]{2,}$/.test(tld))issues.push('Invalid TLD characters');
const domainLower=domain.toLowerCase();
if(typos[domainLower])issues.push(`Did you mean ${parts[0]}@${typos[domainLower]}?`);
const regex=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
const valid=regex.test(email)&&issues.length===0;
return{valid,issues,email,suggestion:typos[domainLower]?`${parts[0]}@${typos[domainLower]}`:null};
}
function validateSingle(){
const email=document.getElementById('singleEmail').value;
const result=validateEmail(email);
const el=document.getElementById('singleResult');
if(result.valid){el.innerHTML=`<div style="color:var(--success);font-weight:600;">✅ Valid email address</div><div class="text-muted" style="margin-top:0.3rem;">Format: ${email}</div>`;el.style.background='var(--accent-glow)';}
else{el.innerHTML=`<div style="color:var(--danger);font-weight:600;">❌ Invalid email address</div><div style="margin-top:0.3rem;">${result.issues.map(i=>`<div class="text-muted">• ${i}</div>`).join('')}</div>${result.suggestion?`<div style="margin-top:0.3rem;color:var(--warning);">💡 Suggestion: ${result.suggestion}</div>`:''}`;el.style.background='rgba(239,68,68,0.05)';}
}
function validateBulk(){
const emails=document.getElementById('bulkEmails').value.split('\n').filter(Boolean);
let valid=0,invalid=0;
const html=emails.map(email=>{
const r=validateEmail(email);
if(r.valid)valid++;else invalid++;
return`<div style="display:flex;justify-content:space-between;align-items:center;padding:0.5rem 0.75rem;border-bottom:1px solid var(--border);font-size:0.85rem;">
<span class="text-mono">${email}</span>
<span style="color:${r.valid?'var(--success)':'var(--danger)'};">${r.valid?'✅ Valid':'❌ '+r.issues[0]}</span>
</div>`;
}).join('');
document.getElementById('bulkResult').innerHTML=html;
document.getElementById('bulkStats').style.display='flex';
document.getElementById('totalCount').textContent=emails.length;
document.getElementById('validCount').textContent=valid;
document.getElementById('invalidCount').textContent=invalid;
}
validateSingle();
</script>
<script src="ads.js"></script>
</body>
</html>