Las clases de caracteres distinguen tipos de caracteres como, por ejemplo, distinguen entre letras y dÃgitos.
Pruébaloconst 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!
.
Tiene uno de los siguientes significados:
\n
, \r
, \u2028
o \u2029
. Por ejemplo, /.i/
coincide con "mi" y "si", pero no con "dÃa", en "si alegra mi dÃa".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](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 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.
/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./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 /\\/
.
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 Compatibilidad del navegadorPara obtener información sobre la compatibilidad del navegador, consulta la tabla principal de compatibilidad de expresiones regulares
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4