Clases de caracteres
Las clases de caracteres distinguen tipos de caracteres como, por ejemplo, distinguen entre letras y dÃgitos.
Pruébalo
const chessStory = "He played the King in a8 and she moved her Queen in c2.";
const regexpCoordinates = /\w\d/g;
console.log(chessStory.match(regexpCoordinates));
// Expected output: Array [ 'a8', 'c2']
const moods = "happy ð, confused ð, sad ð¢";
const regexpEmoticons = /[\u{1F600}-\u{1F64F}]/gu;
console.log(moods.match(regexpEmoticons));
// Expected output: Array ['ð', 'ð', 'ð¢']
Tipos
La siguiente tabla también está duplicada en esta hoja de referencia. No olvides editarla también, ¡gracias!
| Caracteres | Significado |
|---|---|
. |
Tiene uno de los siguientes significados:
Ten en cuenta que el indicador multilÃnea ES2018 agregó el indicador |
\d |
Busca cualquier dÃgito (número arábigo). Equivalente a |
\D |
Busca cualquier caracter que no sea un dÃgito (número arábigo). Equivalente a |
\w |
Busca cualquier caracter alfanumérico del alfabeto latino básico, incluido el caracter de subrayado. Equivalente a |
\W |
Busca cualquier caracter que no sea un caracter de palabra del alfabeto latino básico. Equivalente a |
\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 |
\S |
Busca un solo caracter que no sea un espacio en blanco. Equivalente a |
\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](/es/docs/Web/JavaScript/Guide/Regular_Expressions/Boundaries). |
\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](https://es.wikipedia.org/wiki/Caret_notation), donde "X" es una letra de la A a la Z (correspondiente a los puntos de código |
\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 reconocer este caracter literalmente, escápalo consigo mismo. En otras palabras, para buscar |
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));
["ÐÑиклÑÑениÑ", "ÐлиÑÑ", "в", "СÑÑане", "ÑÑдеÑ"];
Nota para los editores de MDN: no intentes agregar ejemplos divertidos con emojis, ya que esos caracteres no los maneja la plataforma (Kuma).
Especificaciones
This feature does not appear to be defined in any specification. >Compatibilidad del navegador
Para obtener información sobre la compatibilidad del navegador, consulta la tabla principal de compatibilidad de expresiones regulares.