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

115
Views
Expresión regular para limpiar cadenas

[ACTUALIZADO]

En un esfuerzo por limpiar una serie de cadenas que contienen nombres de personas, así como otros títulos o ID de usuario (si están presentes), necesito eliminar los caracteres que no sean letras, así como todos los caracteres que están entre paréntesis, comillas, corchetes, etc

Por ejemplo ["Sean Jackson(he/him)", "Mack $ Adams"] debe cambiarse por ["Sean Jackson", "Mack Adams"] .

Para lograr esto, necesito escribir una expresión regular que pueda coincidir con tales instancias, pero desafortunadamente mi expresión regular no funciona según lo previsto.

 let names = [ 'Sean Jackson (he/him)', 'Steven Robinson', 'Mack $ Adams', 'Keira (12345) Nightly', ]; for (i in names) { names[i] = names[i].replace(/\W*\W/g, ''); } console.log(names);

El código anterior devuelve:

 ["SeanJacksonhehim", "StevenRobinson", "MackAdams", "Keira12345Nightly"]

Mientras que lo que quiero es:

 ["Sean Jackson", "Steven Robinson", "Mack Adams", "Keira Nightly"]
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Entonces, después de investigar un poco y con los útiles comentarios de la comunidad, encontré la siguiente solución funcional.

Dado que un espacio se cuenta como un carácter no alfanumérico en sí mismo ( \s es capturado por la expresión regular no alfanumérica \W ), tuve que especificar que dos caracteres no alfanuméricos consecutivos deben estar en el lado izquierdo de la cadena de destino (por lo tanto usando \W{2} ).

Y luego, en el lado derecho de la cadena de destino, debe haber cualquier número de caracteres, excepto el espacio \S* .

 let names = [ 'Sean Jackson (he/him)', 'Steven Robinson', 'Mack $ Adams', 'Keira (12345) Nightly' ]; for (i in names) { names[i] = names[i].replace(/\W{2}\S*/g, ''); //removes the following patter: [any two non-alphanumerical character followed by any number of any characters except for space] } console.log(names);

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!