Clases de caracteres

Las clases de caracteres distinguen tipos de caracteres como, por ejemplo, distinguen entre letras y dígitos.

Tipos

Caracteres Significado
.

Tiene uno de los siguientes significados:

  • Coincide con cualquier car√°cter √ļnico excepto terminadores de l√≠nea: \n, \r, \u2028 o \u2029. Por ejemplo, /.i/ coincide con "mi" y "si", pero no con "d√≠a", en "si alegra mi d√≠a".
  • Dentro de un juego de caracteres, el punto pierde su significado especial y concuerda con un punto literal.

Ten en cuenta que el indicador multil√≠nea m no cambia el comportamiento del punto. Por lo tanto, para hacer coincidir un patr√≥n en varias l√≠neas, se puede utilizar el conjunto de caracteres [^] ‚ÄĒ coincidir√° con cualquier car√°cter, incluidas las nuevas l√≠neas.

ES2018 agregó el indicador s "dotAll", el cual permite que el punto también coincida con los terminadores de línea.

\d

Busca cualquier d√≠gito (n√ļmero ar√°bigo). Equivalente a [0-9]. Por ejemplo, /\d/ o /[0-9]/ coincide con "2" en "B2 es el n√ļmero de suite".

\D

Busca cualquier caracter que no sea un d√≠gito (n√ļmero ar√°bigo). Equivalente a [^0-9]. Por ejemplo, /\D/ o /[^0-9]/ coincide con "B" en "B2 es el n√ļmero de suite".

\w

Busca cualquier caracter alfanum√©rico del alfabeto latino b√°sico, incluido el caracter de subrayado. Equivalente a [A-Za-z0-9_]. Por ejemplo, /\w/ coincide con "m" en "manzana", "5" en "$5.28", "3" en "3D" y "m" en "√Čmanuel".

\W

Busca cualquier caracter que no sea un caracter de palabra del alfabeto latino b√°sico. Equivalente a [^A-Za-z0-9_]. Por ejemplo, /\W/ o /[^A-Za-z0-9_]/ coincide con "%" en "50%" y "√Č" en "√Čmanuel".

\s

Busca un solo caracter de espacio en blanco, incluido el espacio, tabulación, avance de página, avance de línea y otros espacios Unicode. Equivalente a [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]. Por ejemplo, /\s\w*/ encuentra " bar" en "foo bar".

\S

Busca un solo caracter que no sea un espacio en blanco. Equivalente a [^ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]. Por ejemplo, /\S\w*/ encuentra "foo" en "foo bar".

\t Coincide con una tabulación horizontal.
\r Coincide con un retorno de carro.
\n Coincide con un salto de línea.
\v Coincide con una tabulación vertical.
\f Coincide con un caracter de avance de p√°gina.
[\b] Coincide con un caracter de retroceso. Si estás buscando el carácter de límite de palabra (\b), consulta Límites.
\0 Coincide con un caracter NUL. No sigue a este con otro dígito.
\cX

Coincide con un caracter de control mediante notación de intercalación, donde "X" es una letra de la A a la Z (correspondiente a los puntos de código U+0001-U+001F). Por ejemplo, /\cM/ encuentra "\r" en "\r\n".

\xhh Coincide con el carácter con el código hh (dos dígitos hexadecimales).
\uhhhh Coincide con una unidad de código UTF-16 con el valor hhhh (cuatro dígitos hexadecimales).
\u{hhhh} o \u{hhhhh} (Solo cuando se establece el indicador u). Hace coincidir el carácter con el valor Unicode U+hhhh o U+hhhhh (dígitos hexadecimales).
\

Indica que el siguiente caracter se debe tratar de manera especial o "escaparse". Se comporta de dos formas.

  • Para los caracteres que generalmente se tratan literalmente, indica que el siguiente caracter es especial y no se debe interpretar literalmente. Por ejemplo, /b/ coincide con el car√°cter "b". Al colocar una barra invertida delante de "b", es decir, usando /\b/, el car√°cter se vuelve especial para significar que coincide con el l√≠mite de una palabra.
  • Para los caracteres que generalmente se tratan de manera especial, indica que el siguiente caracter no es especial y se debe interpretar literalmente. Por ejemplo, "*" es un car√°cter especial que significa que deben coincidir 0 o m√°s ocurrencias del car√°cter anterior; por ejemplo, /a*/ significa coincidir con 0 o m√°s "a"es. Para hacer coincidir * literalmente, precede con una barra invertida; por ejemplo, /a\*/ coincide con "a*".

Para reconocer este caracter literalmente, esc√°palo consigo mismo. En otras palabras, para buscar \ usa /\\/.

Ejemplos

Buscar una serie de dígitos

var datosAleatorios = "015 354 8787 687351 3512 8735";
var regexpCuatroDigitos = /\b\d{4}\b/g;
// \b indica un límite (es decir, no empieza a coincidir en medio de una palabra)
// \d{4} indica un dígito, cuatro veces
// \b indica otro límite (es decir, no termina la coincidencia en medio de una palabra)


console.table(datosAleatorios.match(regexpCuatroDigitos));
// ['8787', '3512', '8735']

Busca una palabra (del alfabeto latino) que comience con A

var extractoAlicia = "Estoy segura de que no soy Ada, dijo, 'porque su cabello se hace en rizos tan largos, y el mío no se riza en absoluto'.";
var regexpPalabraEmpiezaConA = /\b[aA]\w+/g;
// \b indica un límite (es decir, no empieza a coincidir en medio de una palabra)
// [aA] indica las letras a o A
// \w+ indica cualquier car√°cter *del alfabeto latino*, varias veces

console.table(extractoAlicia.match(regexpPalabraEmpiezaConA));
// ["Ada", "absoluto"]

Busca una palabra (de caracteres Unicode)

En lugar del alfabeto latino, podemos usar una variedad de caracteres Unicode para identificar una palabra (de modo que podamos tratar con texto en otros idiomas, tal como Ruso o √Ārabe). El "Plano multiling√ľe b√°sico" de Unicode contiene la mayor√≠a de los caracteres que se utilizan en todo el mundo y podemos utilizar clases y rangos de caracteres para reconocer las palabras escritas con esos caracteres.

var textoNoEs = "–ü—Ä–ł–ļ–Ľ—é—á–Ķ–Ĺ–ł—Ź –ź–Ľ–ł—Ā—č –≤ –°—ā—Ä–į–Ĺ–Ķ —á—É–ī–Ķ—Ā";
var regexpPalabraBMP = /([\u0000-\u0019\u0021-\uFFFF])+/gu;
// BMP pasa por U+0000 a U+FFFF pero el espacio es U+0020

console.table(textoNoEs.match(regexpPalabraBMP));
[ '–ü—Ä–ł–ļ–Ľ—é—á–Ķ–Ĺ–ł—Ź', '–ź–Ľ–ł—Ā—č', '–≤', '–°—ā—Ä–į–Ĺ–Ķ', '—á—É–ī–Ķ—Ā' ]

Especificaciones

Compatibilidad del navegador

Para obtener información sobre la compatibilidad del navegador, consulta la tabla principal de compatibilidad de expresiones regulares.

Ve también