EXPRESIONES REGULARES, UNA PELÍCULA DE TERROR. PARTE 1

<script src=”my own” title=”expresiones regulares una pel&iacute;cula de terror\. parte 1″>

email-validation-regex

Asusta, ¿no?

Si esto no les asusta, entonces tienen más estómago que yo… A mi me aterra… 😥

Hay una frase que es aún más aterradora que la imagen anterior:

“Algunos desarrolladores cuando se enfrentan a un problema piensan que la solución es usar expresiones regulares. En ese momento, ya tienen dos problemas.” — Jamie Zawinski

Y sin atisbo de esperanza, nos decepcionamos y nos vamos así no más… Pero basta de chácharas

Básicamente, una expresión regular es un patrón utilizado para búsqueda de caracteres en un texto. Sin embargo la definición real va más allá de eso. Una expresión regular se puede usar para reemplazar cadenas en textos largos, hacer recorridos de árboles, nodos y grafos, y ¡hasta pueden programarse autómatas!

En Javascript, las expresiones regulares son objetos derivados de la clase RegExp, la cual permite utilizar un constructor de expresiones regulares y una serie de métodos que discutiremos a lo largo de este post. Una expresión regular en Javascript se puede construir:

  • De la forma var exp = /expresion/;
  • De la forma var exp = new RegExp("expresion");

La laaa…aaarga lista de elementos que pueden compararse y buscarse en una expresión regular pueden consultarla en el enlace. Yo voy a hablar de los métodos Javascript de RegExp:

  • El método test() prueba una expresión regular, devolviendo true o false si la expresión coincide con el texto pasado como parámetro. Ejemplo:
    console.log(/\w+/.test("Esta es una cadena de prueba"));
    

    devolverá true.

  • El método exec() hace lo mismo que test(), pero éste devuelve un array de información pertinente a la comparación. Ejemplo:
    console.log(/\w+/.exec("Esta es una cadena de prueba"));
    

    devolverá ["Esta", index: 0, input: "Esta es una cadena de prueba"] donde:

    • La posición 0 es la primera ocurrencia de la cadena encontrada.
    • La posición 1 (tambien la posición index) es la posición del primer caracter encontrado.
    • La posición 2 (también la posición input) es la cadena evaluada.

Cabe destacar que se pueden tener banderas (llamadas flags) para hacer la comparación más o menos precisa, a saber:

  • El flag i determina que la comparación debe hacerse ignorando mayúsculas y minúsculas.
  • El flag g determina que la comparación debe hacerse en toda la frase y no sólo la primera ocurrencia (en el caso de textos largos de una línea).
  • El flag m determina que la comparación debe hacerse para todas las lineas del texto (en el caso de textos de un párrafo que hayan sido separados por caracteres de fín de línea \n). Ejemplo:
    console.log(/esta/i.test("ESTA ES UNA CADENA"));
    

    devolverá true.

Sólo un abrebocas de lo que vendrá… muahahaha *risa malvada* 😉

</script>

Anuncios