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

200
Vistas
¿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 Respuestas
Responde la pregunta

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 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