17.7.07

Expresiones Regulares IV – Caracteres especiales

El asterisco (*)

Este símbolo es utilizado para indicar que pretendemos encontrar cero o más ocurrencias del dato previo a él:

var texto = 'abc1'
if( /^\w{3}\d*$/.test(texto) ) {
alert(IsFound)
}

El ejemplo anterior devolverá verdadero para cualquier ocurrencia de 3 cualesquiera caracteres seguidos de cero o más dígitos.

La barra invertida

Este carácter se utiliza para preceder a ciertos caracteres y darles un sentido especial. Por ejemplo, para buscar caracteres de tabulación utilizaremos la expresión \t. A continuación agrego una lista de carateres especiales y su reprepresntación dentro de las expresiones regulares:

  • \t = tabulación
  • \n = nueva línea
  • \f = salto de formulario
  • \r = retorno de carro
  • \w = cualquier carácter ASCII
  • \W = cualquier carácter no ASCII
  • \d = cualquier dígito ASCII
  • \D = cualquier dígito no ASCII
  • \s = cualquier espacio en blanco
  • \S = cualquier carácter que no sea un espacio en blanco

La barra invertida también se utiliza para que caracteres especiales de expresiones regulares, sean interpretados como caracteres comunes. Por ejemplo, si quisieramos encontrar en un texto el signo $ debemos utilizar \$

Los Corchetes

Los corchetes ( [ ] ) se utilizan para crear clases de caracteres. Estas clases están conformadas por grupos literales de caracteres. Por ejemplo /[baco]/ retornará verdadero si cualquier carácter b, a, c u o es encontrado en la cadena testeada.

/[baco]/.test("abcd");  // verdadero

/[baco]/.test("lmnj");  // falso

Adicionalmente, los integrantes de estas clases pueden estar precedidos por el signo ^ que establece la negación de lo buscado. Por ejemplo:

/[^baco]/.test("abcd");  // falso

/[^baco]/.test("lmnj");  // verdadero

Los paréntesis

Los paréntesis pueden utilizarse con dos finalidades: Agrupar clases ( [ ] ) o referirse a subexpresiones previas dentro de una expresión.

([09][a-z)

En este modelo se buscará un 0 o un 9 seguido de uno o más caracteres de a a z en minúsculas.

Al agregarse los paréntesis a una expresión, JavaScript toma nota de la posición del contenido teniendo en cuenta las aperturas de los paréntesis, comenzando por el número 1:

/^([ab](c)?)+$/

En la expresión anterior JavaScript sabe que [ab](c)? es el contenido de 1 y c es el contenido de 2. Para referirse a esas posiciones, preceda al dígito de posición con una barra invertida, por ejemplo \1. También puede utilizarse el signo $, por ejemplo $1

alert("javascript".replace(/java(.*)/,'action$1'));

En el ejemplo anterior, se reemplaza la palabra java por action y luego le adhiere cualquier otro texto que estuviera detrás de java, resultado en actionscript.

re = /(\w+)\s(\w+)/;
"Julio Gonzalez".replace(re, "$2, $1");  // resultado: Gonzalez, Julio

El signo OR ( | )

Este signo representa a OR

var texto = "abc"
/a|b/.test(texto) // verdadero

La expresión anterior devolverá verdadero si texto contiene una a o una b.

El signo más (+)

Este signo es utilizaado para encontrar una o más ocurrencias del item precedente.

var texto = "abc"
/^\d+$/."1234" // verdadero
/^\d+$/."abcde9" // verdadero
/^\d+$/."abcde" // falso

El signo de interrogación (?)

Este signo es utilizado para indicar que se deben encontrar cero o más ocurrencias del item previo.

/^\d{2}\d?$/.test("123")  // verdadero
/^\d{2}\d?$/.test("123789")  // falso

Este código retornará verdadero cuando encuentre exáctamente 2 dígitos y, opcionalmente, un tercer dígito.

ciberbanner.com intercambio de banners

2 Comentarios:

ALPHA dice...

Muy buen post sobre "Expresiones Regulares IV – Caracteres especiales". Esquemático, sencillo, claro... fenomenal. Un saludo.

Nico dice...

La verdad, muy util!!
En cada caso en que se me presenta un problema de validacion compleja, la solucion son las Expresiones Regulares

Saludos!