Breaking

Post Top Ad

Your Ad Spot

viernes, 22 de noviembre de 2019

Fundamentos de JavaScript: Comprender Regex



Un JavaScript de expresiones regulares (o expresiones regulares ) es una secuencia de caracteres que podemos utilizar para trabajar eficazmente con cuerdas. Usando esta sintaxis, podemos:
  • buscar texto en una cadena
  • reemplazar subcadenas en una cadena
  • extraer información de una cadena
Desde la década de 1950, las expresiones regulares se formalizaron como un concepto para la búsqueda de patrones en algoritmos de procesamiento de cadenas.
JavaScript tiene soporte para expresiones regulares directamente integrado en el lenguaje. Una comprensión sólida de las expresiones regulares te harĆ” un programador mucho mĆ”s efectivo. ¡Entonces empecemos!

Un patrón de expresiones regulares muy bÔsico

Aquí hay un patrón bÔsico:
Simplemente estamos haciendo coincidir el texto literal con la cadena de prueba. En breve veremos el mĆ©todo de prueba de expresiones regulares en detalle.

¿Por quĆ© usar expresiones regulares?

Como se mencionó, las expresiones regulares son una forma de describir patrones en datos de cadena. Podemos usarlos para verificar una cadena de caracteres, por ejemplo, para buscar una dirección de correo electrónico, haciendo coincidir el patrón definido por nuestra expresión regular.

Crear una expresión regular

En JavaScript, podemos crear una expresión regular de dos maneras: usando el constructor RegExp o usando barras diagonales /para encerrar el patrón de expresiones regulares .

El mƩtodo del constructor:

La sintaxis es asĆ­:
AsĆ­ por ejemplo:

El mƩtodo literal:

La sintaxis es asĆ­:
Un ejemplo:
Nota: las banderas son opcionales, ¡las veremos mĆ”s adelante en este artĆ­culo!
En el caso en que necesite crear expresiones regulares dinƔmicamente, deberƔ usar el mƩtodo constructor.
En cualquier caso, el resultado darƔ un objeto regex, que tendrƔ los mismos mƩtodos y propiedades adjuntas, para nuestro uso.

Métodos de expresión regular

Cuando probamos nuestras expresiones regulares, generalmente usamos uno de dos mĆ©todos: RegExp.prototype.test()RegExp.prototype.exec().

RegExp.prototype.test ()

Utilizamos este mĆ©todo para probar si se ha encontrado una coincidencia o no. Acepta una cadena que probamos con una expresión regular y devuelve true false, dependiendo de si se encuentra la coincidencia o no.
Veamos un ejemplo:

RegExp.prototype.exec ()

Utilizamos este mĆ©todo para recibir una matriz de todos los grupos coincidentes. Acepta una cadena que probamos contra nuestra expresión regular.
Un ejemplo:
En este ejemplo, ‘hello’es nuestro patrón coincidente, indexes donde comienza la expresión regular y inputes la cadena que se pasó.
Para el resto del artĆ­culo, utilizaremos el test()mĆ©todo.

El poder de la expresión regular

Hasta ahora hemos visto cómo crear patrones simples de expresión regular. Esto es realmente solo la punta del iceberg. ¡Vamos a sumergirnos en la sintaxis para ver todo el poder de las expresiones regulares para manejar tareas mĆ”s complejas!
Un ejemplo de una tarea mĆ”s compleja serĆ­a si tuviĆ©ramos que hacer coincidir varias direcciones de correo electrónico. Al usar los caracteres especiales definidos en la sintaxis, ¡podemos lograr esto!
Echemos un vistazo ahora para que podamos comprender mejor y, por lo tanto, utilizar expresiones regulares en nuestros programas.

Banderas

En cualquier expresión regular, podemos usar las siguientes banderas:
  • g: coincide con el patrón varias veces
  • i: hace que la expresión regular no sea sensible
  • m: habilita el modo multilĆ­nea. Dónde ^$coincidir con el inicio y el final de toda la cadena. Sin esto, las cadenas de varias lĆ­neas coinciden con el principio y el final de cada lĆ­nea.
  • u: habilita el soporte para Unicode
  • s: abreviatura de una sola lĆ­nea , hace .que tambiĆ©n coincida con los nuevos caracteres de lĆ­nea
Las banderas tambiĆ©n se pueden combinar en una sola expresión regular y el orden de la bandera no importa. Se agregan al final de la cadena en literales regex :
Si usa constructores de objetos RegExp , se agregan como segundo parĆ”metro:

Grupos de personajes:

Conjunto de caracteres [abc]

Usamos conjuntos de caracteres para unir diferentes personajes en una sola posición. Coinciden con cualquier carĆ”cter individual en la cadena con los caracteres dentro de los corchetes:

Juego de caracteres negado [^ abc]

Coincide con todo lo que no estĆ” entre corchetes:

Rangos [az]

Si queremos unir todas las letras de un alfabeto en una sola posición, podemos usar rangos. Por ejemplo: [aj] coincidirĆ” con todas las letras de a a j. TambiĆ©n podemos usar dĆ­gitos como [0–9] o letras mayĆŗsculas como [AZ] :
Si existe al menos un personaje en el rango que probamos, devolverĆ” verdadero:
Los rangos tambiĆ©n se pueden combinar usando -:
Partidas de artĆ­culos de rango mĆŗltiple
Podemos verificar si una cadena contiene uno o solo un carĆ”cter en un rango. Comience la expresión regular con ^y termine con $:

Metacaracteres

Los metacaracteres son personajes con un significado especial. Echemos un vistazo a algunos de estos aquĆ­:
  • \d : coincide con cualquier dĆ­gito, siendo[0-9]
  • \D: coincide con cualquier carĆ”cter que no sea un dĆ­gito, efectivamente[^0-9]
  • \w: coincide con cualquier carĆ”cter alfanumĆ©rico (mĆ”s subrayado), equivalente a [A-Za-z_0-9]
  • \W: coincide con cualquier carĆ”cter no alfanumĆ©rico, por lo que cualquier cosa excepto [^A-Za-z_0-9]
  • \s: coincide con cualquier carĆ”cter de espacio en blanco: espacios, tabulaciones, lĆ­neas nuevas y espacios Unicode
  • \S: coincide con cualquier carĆ”cter que no sea un espacio en blanco
  • \0: coincide con nulo
  • \n: coincide con un carĆ”cter de nueva lĆ­nea
  • \t: coincide con un carĆ”cter de tabulación
  • \uXXXX: coincide con un carĆ”cter unicode con el código XXXX (requiere la ubandera)
  • .: coincide con cualquier carĆ”cter que no sea un carĆ”cter de nueva lĆ­nea (p \nej. ) (a menos que use la sbandera, explicada mĆ”s adelante)
  • [^]: coincide con cualquier carĆ”cter, incluidos los caracteres de nueva lĆ­nea. Es muy Ćŗtil en cadenas de varias lĆ­neas.

Cuantificadores

Los cuantificadores son sĆ­mbolos que tienen un significado Ćŗnico en expresiones regulares.
Vamos a verlos en acción:
  • + Coincide con la expresión anterior 1 o mĆ”s veces:
  • * Coincide con la expresión anterior 0 o mĆ”s veces:
  • ? Coincide con la expresión anterior 0 o 1 vez, es decir, el patrón anterior es opcional:
  • ^ Coincide con el comienzo de la cadena, la expresión regular que sigue debe estar al comienzo de la cadena de prueba:
  • $ Coincide con el final de la cadena, la expresión regular que la precede debe estar al final de la cadena de prueba:
  • {N}Coincide exactamente con N ocurrencias de la expresión regular anterior:
  • {N,}Coincide con al menos N apariciones de la expresión regular anterior.
  • {N,M}Coincide con al menos N ocurrencias y como mĆ”ximo M ocurrencias de la expresión regular anterior (cuando M> N).
  • X|YLa alternancia coincide con X o Y:
Nota: Para usar cualquier carĆ”cter especial como parte de la expresión, por ejemplo, si desea hacer coincidir el literal +., entonces deberĆ” escapar de ellos con una barra diagonal inversa \Al igual que:

Revisando Regex

Con estos conceptos frescos en nuestras mentes, ¡repasemos lo que hemos aprendido!

Coincide con cualquier nĆŗmero de 10 dĆ­gitos:

Entonces \dcoincide con cualquier carĆ”cter de dĆ­gitos. {10}coincide con la expresión anterior, en este caso \d exactamente 10 veces. Entonces, si la cadena de prueba contiene menos de o mĆ”s de 10 dĆ­gitos, el resultado serĆ” falso.

Haga coincidir una fecha con el siguiente formato:

DD-MM-YYYY DD-MM-YY
AquĆ­ hemos envuelto toda la expresión dentro $, para que la coincidencia abarque toda la cadena. (es el comienzo de la primera subexpresión. \d{1,2}coincide con al menos 1 dĆ­gito y como mĆ”ximo 2 dĆ­gitos. -coincide con el guión literal. )es el final de la primera subexpresión.
Luego {2}coincide con la primera subexpresión exactamente 2 veces. \d{2}coincide exactamente con 2 dĆ­gitos. (\d{2})?coincide exactamente con 2 dĆ­gitos. Sin embargo, es opcional, por lo que cualquier aƱo contiene 2 dĆ­gitos o 4 dĆ­gitos.

Conclusión

¡Y ahĆ­ vamos! Hemos examinado Expresiones regulares desde lo mĆ”s bĆ”sico hasta implementaciones mĆ”s avanzadas. Incluyendo los mĆ©todos literales y de construcción, mĆ©todos de prueba, banderas y sintaxis de caracteres.
¡Las expresiones regulares pueden ser bastante complejas! Sin embargo, tomarse el tiempo para aprender la sintaxis lo ayudarĆ” en gran medida a identificar los patrones de expresiones regulares mĆ”s fĆ”cilmente. ¡Cualquier nueva confianza que gane seguramente lo tendrĆ” listo para conquistar el próximo obstĆ”culo que encuentre en su viaje de codificación!
¡Espero que hayas encontrado Ćŗtil este artĆ­culo! Puedes seguirme en Medium. TambiĆ©n estoy en Twitter . SiĆ©ntase libre de dejar cualquier pregunta en los comentarios a continuación. EstarĆ© encantado de ayudar!

No hay comentarios.:

Publicar un comentario

Post Top Ad

Your Ad Spot

PƔginas