{ Julian }
Writing / Journal entry

Enmascarar email con Javascript.

Updated 2023.10.13Julian David react · tutorial

Cuando se trata de proteger la privacidad en línea, ocultar direcciones de correo electrónico es una práctica común. En este breve artículo, exploraremos el uso de expresiones regulares (regex) en un ejemplo de código React para lograr este propósito. Vamos a analizar el siguiente código:

import { useState } from 'react';

const email = 'my.custom.email@domain.com';
const regex = /(\w{3}).*/g;

export function App() {
  const [hide, setHide] = useState(false);
  const renderEmail = hide
    ? email.replace(regex, '$1********@********')
    : email;

  return (
    <div>
      {renderEmail}
      <br />
      <button
        type="button"
        onClick={() => {
          setHide((prev) => !prev);
        }}
      >
        {hide ? 'Show email' : 'Hide email'}
      </button>
    </div>
  );
}

Desglose del Regex

En este código, se utiliza la expresión regular /(\w{3}).*/g para ocultar parte de la dirección de correo electrónico. Desglosemos cada parte:

Desventajas y solución

Aunque esta técnica puede ser efectiva, presenta algunas desventajas:

const regex = /(.*)@.*/g;

const renderEmail = hide
  ? email.replace(regex, (match, group1) => {
      const usernameLength = group1.length;
      return `${group1.substring(0, usernameLength / 2)}${'*'.repeat(usernameLength / 2)}@${'*'.repeat(6)}`;
    })
  : email;

Comments