Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Eliminar parte de la cadena usando expresiones regulares y reemplazar

proporcione una cadena como esta (puede ser cualquier patrón, pero el siguiente formato):

lastname/firstname/_/country/postalCode/_/regionId/city/addressFirst/addressSecond/_/phone

Estoy creando una función que, cuando paso algunas partes de la dirección, la función devolverá esas partes y eliminará las partes adicionales que no se solicitan y mantendrá un espacio _ , si se eliminaron muchas:

FE :

ej:

 input : ["country", "postalCode"] return "country/postalCode
 input : ["lastname", "firstname", "regionId"] return "lastname/firstname/_/regionId"
 input : ["firstname", "country", "regionId", "city"] return "firstname/_/country/_/regionId/city"
 input : ["country", "regionId", "phone"] return "country/_/regionId/_/phone"

Ahora, mi método es el siguiente:

 type AddressPart = "firstname" | "lastname" | ... | "phone"; const allAddressParts = ["firstname", "lastname", ... ,"phone"]; static getAddress( format = "lastname/firstname/_/country/postalCode/_/regionId/city/addressFirst/addressSecond/_/phone" parts: AddressPart[], ) { const toRemove = allAddressParts.filter((part) => !parts.includes(part)); toRemove.forEach((part) => { format = format .replace(`_/${part}/_`, '_') .replace(new RegExp(part + '/?'), ''); }); return format; }

lo anterior se ve bien, pero falla al final y comienza:

_/country/postalCode/_/regionId/city/addressFirst/addressSecond/_/

¿Cómo puedo eliminar /_/ o _/ si está situado al inicio o al final sin volver a recorrer la matriz?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede usar expresiones regulares en la cadena final para eliminar los símbolos no deseados iniciales y finales

La primera expresión regular busca:

  • Comienzo de la cadena, con el símbolo ^

  • Uno o más "_/", usando

    paréntesis para agrupar el par de caracteres,

    el signo + para permitir 1 o más, y

    una barra invertida para escapar de la barra inclinada

Y la segunda expresión regular busca:

  • a "/"
  • cero o más "_/", con el *
  • el final de la cadena con el símbolo $

 s1 = "_/country/postalCode/_/regionId/city/addressFirst/addressSecond/_/" s2 = s1.replace(/^(_\/)+/,"").replace(/\/(_\/)*$/,"") console.log(s2)

Usted puede ser capaz de simplificar

Si sabe con certeza que no habrá más de un "_" al principio y uno al final, no necesita los paréntesis y los símbolos + / * .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda