Usar expresiones regulares en Javascript

Una expresión regular es una secuencia de caracteres que forman un patrón de búsqueda. Dicho patrón de búsqueda puede utilizarse para reemplazar textos dentro de una cadena. Es decir, mediante este patrón de búsqueda podemos describir qué estamos buscando exáctamente a la hora de reemplazar. En la práctica, una expresión regular puede ser de un solo carácter, o bien un patrón mucho más elaborado y complicado.

En Javascript, casi todo suele ser un objeto, y las expresiones regulares no iban a ser una excepción. Las expresiones regulares son patrones que se utilizan para que coincidan con combinaciones existentes de caracteres en cadenas. Estos patrones se utilizan mediante los métodos exec() y test() de RegExp, y con los métodos match, search y split de String. Estas operaciones las utilizaremos para realizar todos los tipos de búsqueda y para operaciones de sustitución de texto.

Aquí tienes un ejemplo del uso de una expresión regular simple en Javascript:

var pattern = /example/i

example/i es una expresión regular. example es el patrón (lo que usaremos en la búsqueda). i es el modificador (modifica la búsqueda para que distinga entre mayúsculas y minúsculas)

Pasos a la hora de saber gestionar expresiones regulares en Javascript

  • Preparación para expresiones regulares en Javascript (Patrón + Modificador)
  • Utilizar expresiones regulares en objetos
  • Utilizar expresiones regulares en cadenas

Preparación para expresiones regulares en Javascript

En Javascript, los objetos de expresiones regulares contienen dos componentes, el patrón y el modificador. La sintaxis sería tal que así:

/pattern/modifiers;

El patrón de la expresión regular especifica el patrón de búsqueda. Un patrón está compuesto por caracteres simples, como /abc/ o una combinación de caracteres simples y especiales, tal que /abc/ o /Capitulo (d+) . d/.

Chuleta sobre patrones de expresiones regulares

Los modificadores especifican si nuestra búsqueda debe diferenciar entre mayúsculas y minúsculas, global, etc. Se utilizan para realizar búsquedas entre mayúsculas y minúsculas y búsquedas globales:

Tabla de modificadores

Ahora que ya estamos familiarizados con la teoría, estamos listos para aplicar expresiones regulares en Javascript. Hay dos maneras básicas de aplicar expresiones regulares en JavaScript - Utilizar expresiones regulares en objetos - Utilizar expresiones regulares en cadenas.

Utilizar expresiones regulares en objetos

Crear un objeto de expresión regular

Un objeto de expresión regular describe un patrón de caracteres. Se utiliza para ver si una cadena en concreto coincide con dicho patrón. Hay dos formas de construir un objeto de expresión regular.

Vía 1 - Usando una expresión regular literal, que consiste en un patrón encerrado entre barras, tal que así:

var reg = /ab+c/;

Las expresiones regulares literales proporcionan una compilación de la expresión regular cuando se carga el script. Cuando la expresión regular se mantiene constante, utiliza esta manera para un mejor rendimiento.

Vía 2 - Llamando a la función constructora del objeto RegExp, de la siguiente manera:

var reg = new RegExp("ab+c");

Utiliza la función constructora cuando sepeas que el patrón de expresión regular va a cambiar, o cuando no conozcas el patrón exáctamente porque lo estás recibiendo de otra fuente, como un input de un usuario.

Métodos de objetos de expresiones regulares

En primer lugar, vamos a conocer algunos métodos comunes de objetos de expresión regular:

compile()	Deprecated in version 1.5. Compiles a regular expression
exec()	Tests for a match in a string. Returns the first match
test()	Tests for a match in a string. Returns true or false
toString()	Returns the string value of the regular expression

Ejemplos:

Usando test()

El método test() es un método de RegExp. Busca un patrón dentro de una cadena, y devuelve verdadero o falso, dependiendo del resultado.

El siguiente ejemplo busca dentro de una cadena el carácter "e":

var patt = /e/;
patt.test("The best things in life are free!");

Puesto que hay más de una "e" en la cadena, la salida del código anterior será:

true

No tienes porqué definir la expresión regular en una variable primero. Las dos líneas de más arriba, se pueden acortar a una sola línea:

/e/.test("The best things in life are free!");

Usando exec()

El método exec () es un método de RegExp. Busca una cadena para un patrón concreto, y devuelve el texto encontrado. Si no se encuentra ninguna coincidencia, devuelve null.

El siguiente ejemplo busca dentro de una cadena el carácter "e":

/e/.exec("The best things in life are free!");

Puesto que hay más de una "e" en la cadena, la salida del código anterior será:

.e

Utilizar expresiones regulares en cadenas

En JavaScript, las expresiones regulares también se pueden utilizar con los dos métodos de String: search() y replace(). Se utilizan para manejar dos operaciones fundamentales - hacer una búsqueda y reemplazar texto.

  • El método search() utiliza una expresión para buscar una coincidencia, y devuelve la posición del carácter o caracteres.
  • El método replace() devuelve una cadena modificada, donde se sustituye el patrón.

Ejemplos:

Utiliza una expresión regular para hacer una búsqueda sin diferenciar entre mayúsculas y minúsculas de "w3schools" en una cadena:

var str = "Visit W3Schools";
var n = str.search(/w3schools/i);

El resultado de n será:

6

El método search() también aceptará un string como argumento de búsqueda. Dicho argumento puede ser una expresión regular:

Utiliza una cadena para hacer una búsqueda de "w3schools" en una cadena:

var str = "Visit W3Schools!";
var n = str.search("W3Schools");

Utiliza una expresión regular para reemplazar Microsoft con W3Schools en una cadena:

var	str = "Visit Microsoft!";
var res = str.replace(/microsoft/i, "W3Schools");

El resultado en res será:

Visit W3Schools!

El método replace() también acepta una cadena como argumento de búsqueda: var str = "Visit Microsoft!"; res var = str.replace ("Microsoft", "W3Schools");

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP