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

202
Visualizações
¿Cómo divido un valor usando la función de división de javascript para dividir comprobando solo la primera y la última aparición?

Así que necesito dividir una expresión regular que proviene de mi base de datos. El valor es como el siguiente

 regexValue = '/^([0-9]{3}\.?[0-9]{3}\.?[0-9]{3}\-?[0-9]{2}|[0-9]{2}\.?[0-9]{3}\.?[0-9]{3}\/?[0-9]{4}\-?[0-9]{2})$/ig'

si analiza a fondo esta expresión regular, puede ver que tiene una barra inclinada '/' entre la expresión regular. Entonces, si quisiera dividirlo, usando

 values.split('/');

Generaría más cadenas de las que me gustaría. Por ejemplo, una expresión regular simple

 //would generate three values("", \w+ , ig) regexValue = '/\w+/ig' regexValue.split('/');

¿Hay alguna manera de que solo pueda dividir para obtener el primer y el último valor?

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

0

Si desea dividir esa cadena en el cuerpo de la expresión regular y sus banderas, puede hacerlo fácilmente con... una expresión regular. 😃

 const parts = /^\s*\/(.*)\/(?:([az]*))\s*$/.exec(regexString); // A ^ // B ^^^ // C ^^ // D ^^^^ // E ^^ // F ^^^^^^^^^^^^ // G ^^^ // H ^
  • A: Inicio de la entrada
  • B: espacio en blanco opcional
  • C: barra inclinada inicial de expresión regular "literal"
  • D: Cuerpo de la expresión
  • E: barra oblicua final de expresión regular "literal"
  • F: banderas opcionales
  • G: espacio en blanco opcional
  • H: Fin de entrada

Ejemplo en vivo:

 const regexString = '/^([0-9]{3}\\.?[0-9]{3}\\.?[0-9]{3}\\-?[0-9]{2}|[0-9]{2}\\.?[0-9]{3}\\.?[0-9]{3}\\/?[0-9]{4}\\-?[0-9]{2})$/ig'; const parts = /^\s*\/(.*)\/(?:([az]*))\s*$/.exec(regexString); if (!parts) { console.log("No match"); } else { const [, body, flags] = parts; console.log(`body: ${body}`); console.log(`flags: ${flags}`); }


Tenga en cuenta que escapé de las barras diagonales inversas en el literal de cadena, ya que dijo que está leyendo esto desde su base de datos, no lo tiene en un literal de cadena en su código. Es solo que dentro de un literal de cadena, una barra invertida es un carácter de escape, por lo que \. y . significa exactamente lo mismo. Para escribir un literal de cadena que defina una cadena con barras invertidas, debe escapar de ellos como lo hice en el fragmento anterior. Una vez más, ha dicho que proviene de su base de datos, por lo que está bien, pero pensé que debería escaparlos en el ejemplo para evitar ser engañoso.

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