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

96
Visualizações
Reemplazo de expresiones regulares para javascript de matriz de cadenas múltiples

Tengo una matriz de cadenas y los patrones como #number-number en cualquier lugar dentro de una cadena.

Requisitos :

  • Si # y el número de un solo dígito antes del guión, reemplace # y agregue 0. Por ejemplo, #162-7878 => 162-7878 , #12-4598866 => 12-4598866

  • Si el # y un número de dos o más dígitos antes del guión, reemplace elimine #. Por ejemplo, #1-7878 => 01-7878 .

  • Si no hay # y un número de un solo dígito antes del guión, agregue 0. Por ejemplo, 1-7878 => 01-7878 .

Me quedé atascado y cómo hacerlo en JavaScript. Aquí está el código que usé :

 let arrstr=["#12-1676","#02-8989898","#676-98908098","12-232","02-898988","676-98098","2-898988", "380100 6-764","380100 #6-764","380100 #06-764"] for(let st of arrstr) console.log(st.replace(/#?(\d)?(\d-)/g ,replacer)) function replacer(match, p1, p2, offset, string){ let replaceSubString = p1 || "0"; replaceSubString += p2; return replaceSubString; }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Usando el unary operator , aquí hay una función de replacer de dos líneas.

 const testValues = ["#162-7878", "#12-4598866", "#1-7878", "1-7878"]; const re = /#?(\d+?)-(\d+)/; for(const str of testValues) { console.log(str.replace(re, replacer)); } function replacer(match, p1, p2) { p1 = +p1 < 10 ? `0${p1}` : p1; return `${p1}-${p2}`; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Sugiero hacer coincidir # opcionalmente al comienzo de la cadena, y luego capturar uno o más dígitos antes - + un dígito para luego rellenar esos dígitos con ceros iniciales y omitir el # inicial en el resultado:

 st.replace(/#?\b(\d+)(?=-\d)/g, (_,$1) => $1.padStart(2,"0"))

Vea la demostración de JavaScript:

 let arrstr=["#12-1676","#02-8989898","#676-98908098","12-232","02-898988","676-98098","2-898988", "380100 6-764","380100 #6-764","380100 #06-764"] for(let st of arrstr) console.log(st,'=>', st.replace(/#?\b(\d+)(?=-\d)/g, (_,$1) => $1.padStart(2,"0") ))

La expresión regular /#?\b(\d+)(?=-\d)/g coincide con todas las apariciones de

  • #? - un # carácter opcional
  • \b - límite de palabras
  • (\d+) - Grupo de captura 1: uno o más dígitos...
  • (?=-\d) - que debe ir seguido de - y un dígito (esta es una búsqueda anticipada positiva que solo verifica si su patrón coincide inmediatamente a la derecha de la ubicación actual sin consumir realmente el texto coincidente).
about 4 years ago · Juan Pablo Isaza Relatório

0

let list_of_numbers =["#1-7878", "#162-7878", "#12-1676","#02-8989898","#676-98908098","12-232","02-898988","676-98098","2-898988"] const solution = () => { let result = '' for (let number of list_of_numbers) { let nums = number.split('-') if (nums[0][0] == '#' && nums[0].length > 2) { result = `${nums[0].slice(1, number.length-1)}-${nums[1]}` console.log(result) } else if (nums[0][0] == '#' && nums[0].length == 2) { result = `${nums[0][0] = '0'}${nums[0][1]}-${nums[1]}` console.log(result) } else { console.log(number) } } }
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