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

176
Visualizações
Obtenga todos los fragmentos de números de teléfono de EE. UU. posibles para un número dado

El formato del número de teléfono de EE. UU. es:

 (XXX) XXX-XXXX

Para cualquier cadena dada (solo dígitos) de longitud 0 < length <= 10 , quiero obtener una matriz de todos los fragmentos posibles que coincidan con el formato de número de teléfono de EE. UU.

Por ejemplo:

 Input: "54" Output: ["(54", "54", "54)", "5) 4", "5-4"]

Para entradas más largas, la salida será mucho más complicada, y creo que sería estúpido escribirlo a mano.

Lo que estoy tratando de hacer es resaltar el número de teléfono en un resultado de búsqueda mientras lo escribo en mi proyecto.

Estoy usando https://www.npmjs.com/package/react-highlight-words para lograrlo: este paquete puede tomar la matriz de searchWords para buscar en un texto específico. No puedo encontrar ningún paquete o función que me ayude a realizar esta tarea, ni soy fluido con expresiones regulares (ni siquiera estoy seguro de si ayudaría aquí)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede convertir su cadena de dígitos en una expresión regular que busca una serie de: un no dígito opcional ( \D? ) seguido del dígito de destino seguido de un no dígito opcional. Por ejemplo, "54" se convierte en la expresión regular \D?5\D?\D?4\D? .

Como esto:

 function format(num, digits) { // Since we're using a template literal, we have to escape the backslash // in `\D` for the regex constructor to see it const rex = new RegExp([...digits].map(digit => `\\D?${digit}\\D?`).join(""), "g"); const result = num.replace(rex, m => `<span class="highlight">${m}</span>`); return result; }

Eso parece hacer el truco:

 const numbers = [ "(321) 456-7890", "(098) 765-4321", "(541) 123-3456", "(354) 123-3456", "(335) 423-3456", "(231) 541-1234", "(231) 254-1234", "(231) 225-4234", "(231) 223-5434", "(231) 223-3544", "(231) 223-3454", "(231) 543-3454", ]; const input = "54"; document.getElementById("output").innerHTML = `<div> ${numbers.map(num => "<div>" + format(num, input) + "</div>").join("")} </div>`; function format(num, digits) { const rex = new RegExp([...digits].map(digit => `\\D?${digit}\\D?`).join(""), "g"); const result = num.replace(rex, m => `<span class="highlight">${m}</span>`); return result; }
 .highlight { font-weight: bold; color: red; }
 <div id="output"></div>

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