Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

105
Views
Regex para enmascarar la entrada de SSN como ***-**-xxxx

Estoy tratando de enmascarar un campo de entrada para un número de seguro social para mostrar solo los últimos 4 dígitos y enmascarar el resto con un "*". Quiero que el número enmascarado se vea así

 ***-**-1234

Pude formatearlo para reemplazar todos menos los últimos 4 con "*", pero no sé cómo agregar adicionalmente el "-" en el número para seguir el formato ssn.

 const TestComp = () => { const [ssn, setSsn] = React.useState(""); return ( <div> <input type="text" value={formatSsn(ssn)} onChange={ e => setSsn(e.target.value)}/> </div> ) } const formatSsn = (ssn: string | null | undefined) => { return !ssn ? "" : ssn.replace(/[^\d\*]/g, "").replace(/(?=\d{5})\d/, "*"); }; ReactDOM.render(<TestComp />, document.querySelector("#app"))

Aquí está mi jsfiddle con lo que tengo hasta ahora.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puedes usar

 const formatSsn = (ssn: string | null | undefined) => { return !ssn ? "" : ssn.length > 11 ? ssn.substr(0,11) : ssn.replace(/[^\d*]/g, "").replace(/(?=\d{5})\d/, "*") .replace(/^(.{1,3})(.{1,2})?(.{1,4})?.*$/, (_,x,y,z) => x + (y ? `-${y}` : '') + (z ? `-${z}` : '')); };

Notas :

  • Si el ssn tiene más de 11 caracteres, simplemente devuelva los primeros 11 caracteres
  • .replace(/^(.{1,3})(.{1,2})?(.{1,4})?.*$/, (_,x,y,z) => x + (y ? `-${y}` : '') + (z ? `-${z}` : '') formateará el número como se esperaba, se agregarán dos guiones después de los primeros tres caracteres y después de los primeros cinco caracteres (si están presentes).
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!