El 14 de septiembre de 2017, publicamos una versión revisada de nuestra Política de privacidad. Tu uso continuado de video2brain.com significa que aceptas este documento revisado, por lo que te recomendamos que dediques unos minutos a leerlo y comprenderlo.

JavaScript avanzado: Expresiones regulares

La propiedad LastIndex dentro de las expresiones regulares

Prueba ahora LinkedIn Learning sin cargo y sin compromiso.

Prueba gratis Mostrar modalidades de suscripción
Aprende a usar la propiedad LastIndex en tu favor para controlar el nivel de búsqueda y las coincidencias que se mostrarán al emplear los métodos de aplicación de expresiones regulares en tu aplicación web.
07:11

Transcripción

Recordemos que en las expresiones regulares podemos contar con el método "exec" cuando queremos tomar más datos sobre lo que sucedió con la búsqueda y así poder reaccionar en consecuencia. Por ejemplo, en este caso, estamos buscando de manera global, por eso indicamos aquí el operador "g", todas las incidencias que haya con la letra "y" en esta cadena de texto. En este caso, va a encontrar una aquí y otra acá. Cuando lo ejecutamos, me va a arrojar un cierto resultado. Por ejemplo, me está indicando que tenemos el índice en el nivel 5 con esta entrada. Ahora, esto es correcto, pero aquí hay una propiedad implícita que no se está mostrando. Y de hecho, si tú despliegas esta parte de "proto" vas a encontrar que hay muchas funciones que se pueden llegar a utilizar o que puedes llegar a ocupar para este tipo de métodos. Por tanto, lo que nosotros vamos a estar ocupando va a ser una propiedad llamada "lastIndex". Nosotros cuando utilizamos ese "lastIndex", es una propiedad que me va a servir para indicarme el último índice donde fue encontrada una expresión. Por ejemplo, vamos a repetir aquí, en este caso, esta coincidencia y vamos a escribir aquí ".lastIndex". Y vamos a revisar qué sucede. Aquí me va a arrojar "indefinido" porque lo expresé yo para la coincidencia y esa debe de ser para la expresión. Así que vamos a revisar. Listo. En este caso, ya tengo aquí donde me indica que el último índice donde se utilizó es el 5, porque ahora me está regresando el valor número 6. Vamos a agregar esto antes de que se ejecute la evaluación de la expresión. Como ves, el "lastIndex" es como si fuera un tipo counter, o contador, que me está sirviendo para llevar un control sobre en dónde se encuentra la última incidencia de la búsqueda y esto sucede solamente cuando estamos trabajando de manera global. Es decir, cuando estamos forzando a que esto se ejecute "n" cantidad de veces hasta que encuentre resultado. Como vemos, "lastIndex" antes de la evaluación vale 0. Cuando llega la evaluación hay un índice que se llama "5" y después de eso, obviamente, el "lastIndex" cambia a incrementar al siguiente, y en este caso va a ser un 6. Por tanto, si yo volviera a ejecutarlo, vuelve a cambiar. Es decir, estamos reposicionando el lugar a partir de donde comienza a buscar. Ahora, vamos a agregar una expresión nueva, por ejemplo. Pero antes, vamos a evaluar con esta misma expresión, un cambio en el "lastIndex". Sí, nosotros podemos hacer una modificación, entonces podemos poner este "lastIndex" adonde deseemos. Aquí en este caso tenemos el índice que apuntaba al 5. Vamos a indicar que después de esto, me apunte, probablemente, al 6. Con esto yo lo estoy modificando. Quiere decir que no dejé corriera el flujo normal y simplemente estoy forzando un cambio. Al forzar este cambio, cuando yo actualizo, vamos a ver cómo el primer "lastIndex" que me va a arrojar de este lado va a ser hasta el 15, es decir, hasta esta sección de la posición. ¿Por qué? Porque yo tengo aquí una modificación en este "lastIndex". De hecho, vuelvo a ejecutar yo la consola para mostrar el "lastIndex" después de esa modificación y vamos a ver cómo, obviamente antes de la modificación, después de la modificación y cuando comienza a buscar ya no me considera la primera iteración. ya me busca a partir de la segunda. Entonces yo puedo controlar cómo globalmente va a comenzar a hacer la búsqueda de determinado patrón. Ahora, es importante considerar también que podemos tener algunos otros cambios, es decir, así como aquí fuimos modificando el "lastIndex", cada vez que nosotros hacemos una invocación del "exec", ese "lastIndex" va cambiando de manera global. Por lo tanto, debes tener mucho cuidado. Vamos a hacer el siguiente ejercicio. Para este caso, voy a comentar todo este código y vamos a escribir aquí abajo una expresión nueva. Vamos a poner aquí que sea "expresion2" y esto va a ser igual a... vamos a escribir aquí la doble diagonal para nuestro patrón y vamos a escribir que me encuentre cualquier número de manera global. Y ahora vamos a escribir por acá, por ejemplo, "console.log" para indicar que la expresión número 2 la vamos a estar evaluando y lo que vamos a evaluar, por ejemplo, va a ser una cadena de texto y vamos escribir: "Pedí 4 tacos", una medida usual, y "1 agua". Así que vamos a ejecutarlo y vamos a revisar aquí dónde se encuentra el índice, en el 5. Vuelvo a invocarlo, es decir, lo único que hago es repetir esta línea. Se ejecuta una vez, se ejecuta dos veces. Vamos a probar y veamos como ahora este índice cambia. Al principio estaba en 5. En la segunda ejecución va al nivel 15. Y vamos a ver una tercera ejecución qué sucede. Aquí voy a colocar mi cursor para repetirlo, volvamos a probar y vemos como ahora ya me regresa un "null". ¿Por qué? Porque como estamos buscando acorde a esta expresión, un número de manera global, el primero lo encuentra en la posición 5. El segundo lo va a encontrar en la posición número 15, hasta acá. Y después ya no hay un tercero, por tanto ya me va a arrojar un nulo. Y es por eso que debemos de tener cuidado. Porque si lo estamos ejecutando sobre la misma cadena de texto, entonces ese índice se va actualizando para esa cadena de texto. Si tú deseas cambiarlo simplemente trata entonces de generar una nueva variable que te almacene un nuevo dato y a partir de ahí buscar. O lo que puedes hacer es utilizar la técnica que trabajamos aquí y resetear este "lastIndex" a su original expresión. Por ejemplo, vamos a escribir aquí "expresion2.lastIndex" y vamos a resetearlo al 0, para que en lugar de que me arroje este nulo simplemente vuelva a comenzar y regresemos al índice número 5. Con esto entonces tenemos un control sobre los niveles que vamos a estar ocupando. Este "lastIndex" es muy importante, porque cuando estoy trabajando con un método como "exec" me va a regresar más información y puedo controlar en qué parte de la cadena de texto voy y en qué parte estoy evaluando.

JavaScript avanzado: Expresiones regulares

Aprende a usar las expresiones regulares en JavaScript, ya que son un gran recurso en todo lenguaje, que te facilitará la creación de patrones o usar los ya prediseñados.

1:32 horas (23 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:5/12/2016

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.