Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

148
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda