{"id":60,"date":"2026-03-26T13:18:11","date_gmt":"2026-03-26T07:48:11","guid":{"rendered":"https:\/\/www.oneclickai.in\/?page_id=60"},"modified":"2026-03-26T13:18:20","modified_gmt":"2026-03-26T07:48:20","slug":"duplicate-email-finder","status":"publish","type":"page","link":"https:\/\/www.oneclickai.in\/index.php\/duplicate-email-finder\/","title":{"rendered":"Duplicate Email Finder"},"content":{"rendered":"\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Duplicate Email Finder<\/title>\n  <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n<\/head>\n<body class=\"bg-gray-100\">\n\n  <div class=\"max-w-6xl mx-auto p-6\">\n    <h1 class=\"text-3xl font-bold mb-6 text-center\">\ud83d\udce7 Duplicate Email Finder<\/h1>\n\n    <textarea id=\"inputText\" class=\"w-full h-40 p-4 border rounded-lg\" placeholder=\"Paste bulk emails or text here...\"><\/textarea>\n\n    <div class=\"flex flex-wrap gap-3 mt-4\">\n      <button onclick=\"findEmails()\" class=\"bg-blue-600 text-white px-4 py-2 rounded\">Find Emails<\/button>\n      <button onclick=\"copyText('unique')\" class=\"bg-green-600 text-white px-4 py-2 rounded\">Copy Unique<\/button>\n      <button onclick=\"copyText('duplicate')\" class=\"bg-red-600 text-white px-4 py-2 rounded\">Copy Duplicates<\/button>\n      <button onclick=\"copyText('invalid')\" class=\"bg-yellow-500 text-white px-4 py-2 rounded\">Copy Invalid<\/button>\n      <button onclick=\"clearAll()\" class=\"bg-gray-600 text-white px-4 py-2 rounded\">Clear<\/button>\n    <\/div>\n\n    <!-- Stats -->\n    <div class=\"grid grid-cols-1 md:grid-cols-4 gap-4 mt-6\">\n      <div class=\"bg-white p-4 rounded shadow text-center\">\n        <h2>Total Emails<\/h2>\n        <p id=\"totalCount\" class=\"text-2xl font-bold\">0<\/p>\n      <\/div>\n      <div class=\"bg-white p-4 rounded shadow text-center\">\n        <h2 class=\"text-green-600\">Unique<\/h2>\n        <p id=\"uniqueCount\" class=\"text-2xl font-bold\">0<\/p>\n      <\/div>\n      <div class=\"bg-white p-4 rounded shadow text-center\">\n        <h2 class=\"text-red-600\">Duplicates<\/h2>\n        <p id=\"duplicateCount\" class=\"text-2xl font-bold\">0<\/p>\n      <\/div>\n      <div class=\"bg-white p-4 rounded shadow text-center\">\n        <h2 class=\"text-yellow-600\">Invalid<\/h2>\n        <p id=\"invalidCount\" class=\"text-2xl font-bold\">0<\/p>\n      <\/div>\n    <\/div>\n\n    <!-- Results -->\n    <div class=\"grid grid-cols-1 md:grid-cols-3 gap-4 mt-6\">\n      <div class=\"bg-white p-4 rounded shadow\">\n        <h3 class=\"font-bold text-green-600\">Unique Emails (All Valid)<\/h3>\n        <div id=\"uniqueList\" class=\"text-sm max-h-60 overflow-y-auto\"><\/div>\n      <\/div>\n      <div class=\"bg-white p-4 rounded shadow\">\n        <h3 class=\"font-bold text-red-600\">Duplicate Emails<\/h3>\n        <div id=\"duplicateList\" class=\"text-sm max-h-60 overflow-y-auto\"><\/div>\n      <\/div>\n      <div class=\"bg-white p-4 rounded shadow\">\n        <h3 class=\"font-bold text-yellow-600\">Invalid Emails (Auto-fixed)<\/h3>\n        <div id=\"invalidList\" class=\"text-sm max-h-60 overflow-y-auto\"><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    let uniqueEmails = [];\n    let duplicateEmails = [];\n    let invalidEmails = [];\n\n    function cleanEmail(email) {\n      return email\n        .replace(\/\\.\\.+\/g, '.')\n        .replace(\/@\\.\/g, '@')\n        .replace(\/\\.$\/, '')\n        .toLowerCase();\n    }\n\n    function isValidEmail(email) {\n      const regex = \/^[a-zA-Z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$\/;\n      return regex.test(email);\n    }\n\n    function findEmails() {\n      const text = document.getElementById('inputText').value;\n\n      \/\/ extract emails (even slightly broken ones)\n      const rawEmails = text.match(\/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.?[a-zA-Z]*\/g) || [];\n\n      const emailCount = {};\n      uniqueEmails = [];\n      duplicateEmails = [];\n      invalidEmails = [];\n\n      rawEmails.forEach(original => {\n        const cleaned = cleanEmail(original);\n\n        if (!isValidEmail(cleaned)) {\n          invalidEmails.push(original + \" \u2192 \" + cleaned);\n          return;\n        }\n\n        if (!emailCount[cleaned]) {\n          emailCount[cleaned] = 0;\n        }\n        emailCount[cleaned]++;\n      });\n\n      \/\/ UNIQUE = ALL valid emails (including duplicates but only once)\n      uniqueEmails = Object.keys(emailCount);\n\n      \/\/ DUPLICATES = emails appearing more than once\n      duplicateEmails = Object.keys(emailCount).filter(email => emailCount[email] > 1);\n\n      document.getElementById('totalCount').innerText = rawEmails.length;\n      document.getElementById('uniqueCount').innerText = uniqueEmails.length;\n      document.getElementById('duplicateCount').innerText = duplicateEmails.length;\n      document.getElementById('invalidCount').innerText = invalidEmails.length;\n\n      document.getElementById('uniqueList').innerHTML = uniqueEmails.join('<br>') || 'No data';\n      document.getElementById('duplicateList').innerHTML = duplicateEmails.join('<br>') || 'No duplicates';\n      document.getElementById('invalidList').innerHTML = invalidEmails.join('<br>') || 'No invalid emails';\n    }\n\n    function copyText(type) {\n      let text = '';\n      if (type === 'unique') text = uniqueEmails.join(', ');\n      if (type === 'duplicate') text = duplicateEmails.join(', ');\n      if (type === 'invalid') text = invalidEmails.join(', ');\n\n      if (!text) {\n        alert('Nothing to copy');\n        return;\n      }\n\n      navigator.clipboard.writeText(text).then(() => {\n        alert('Copied successfully!');\n      });\n    }\n\n    function clearAll() {\n      document.getElementById('inputText').value = '';\n      document.getElementById('uniqueList').innerHTML = '';\n      document.getElementById('duplicateList').innerHTML = '';\n      document.getElementById('invalidList').innerHTML = '';\n      document.getElementById('totalCount').innerText = 0;\n      document.getElementById('uniqueCount').innerText = 0;\n      document.getElementById('duplicateCount').innerText = 0;\n      document.getElementById('invalidCount').innerText = 0;\n\n      uniqueEmails = [];\n      duplicateEmails = [];\n      invalidEmails = [];\n    }\n  <\/script>\n\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>Duplicate Email Finder \ud83d\udce7 Duplicate Email Finder Find Emails Copy Unique Copy Duplicates Copy Invalid Clear Total Emails 0 Unique [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"disabled","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-60","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.oneclickai.in\/index.php\/wp-json\/wp\/v2\/pages\/60","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.oneclickai.in\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.oneclickai.in\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.oneclickai.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oneclickai.in\/index.php\/wp-json\/wp\/v2\/comments?post=60"}],"version-history":[{"count":0,"href":"https:\/\/www.oneclickai.in\/index.php\/wp-json\/wp\/v2\/pages\/60\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.oneclickai.in\/index.php\/wp-json\/wp\/v2\/media?parent=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}