{"id":8398,"date":"2022-01-25T13:37:27","date_gmt":"2022-01-25T12:37:27","guid":{"rendered":"https:\/\/carontestudio.com\/blog\/?p=8398"},"modified":"2022-10-18T18:21:54","modified_gmt":"2022-10-18T16:21:54","slug":"expresiones-regulares-en-javascript","status":"publish","type":"post","link":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/","title":{"rendered":"Expresiones Regulares en JavaScript"},"content":{"rendered":"\n<p>\u00a1Bienvenido! En este nuevo art\u00edculo vamos a hablar sobre <strong>que son las expresiones regulares <\/strong>tambi\u00e9n conocidas como <strong>Regex<\/strong>, comentaremos c\u00f3mo se crean y usan en JavaScript y mucho m\u00e1s. \u00a1Empezamos!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Que son las expresiones regulares<\/h2>\n\n\n\n<p><strong>Las expresiones regulares son patrones<\/strong> que se emplean para hacer coincidir o para encontrar combinaciones determinadas dentro de una cadena de texto. A la hora de <a href=\"https:\/\/carontestudio.com\/diseno-web\/diseno-web-vitoria\">dise\u00f1ar un sitio web<\/a>, es muy com\u00fan utilizar expresiones regulares en JavaScript para verificar que los datos introducidos en un formulario son los adecuados, por ejemplo para verificar que en el campo <em>tel\u00e9fono<\/em> han introducido 9 d\u00edgitos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo crear una expresi\u00f3n regular<\/h2>\n\n\n\n<p>Existen dos maneras de <strong>construir una expresi\u00f3n regular en JavaScript<\/strong>:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Utilizando un literal que consiste en un patr\u00f3n encerrado entre barras:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>let re = \/D\/;<\/code><\/pre>\n\n\n\n<p>Las expresiones regulares literales se compilan cuando se carga el script, por ello, si la expresi\u00f3n regular no va a cambiar, el uso de este tipo de patrones puede favorecer el rendimiento.<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\"><li>Llamando a la funci\u00f3n RegExp, la cual construye un objeto <a href=\"https:\/\/developer.mozilla.org\/es\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/RegExp\" target=\"_blank\" rel=\"noreferrer noopener\">RegExp<\/a>:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>let re = new RegExp('ab+c');<\/code><\/pre>\n\n\n\n<p>En este caso la expresi\u00f3n regular se compila durante el tiempo de ejecuci\u00f3n de la misma, por ello se recomienda el uso de la funci\u00f3n constructora cuando el patr\u00f3n de la misma vaya a cambiar o cuando la fuente del patr\u00f3n sea desconocida.<\/p>\n\n\n\n<p><strong>Existen diversos m\u00e9todos en JavaScript<\/strong> que s\u00e9 utilizan una vez creada la expresi\u00f3n regular. Hay m\u00e9todos pertenecientes al objeto RegExp, mientras que otros son propios de los objetos String.<\/p>\n\n\n\n<p>El objeto RegExp dispone de los m\u00e9todos:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>exec()<\/li><li>test()<\/li><\/ul>\n\n\n\n<p>Los m\u00e9todos de <em>String<\/em> disponibles para expresiones regulares son los siguientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>match()<\/li><li>matchAll()<\/li><li>replace()<\/li><li>replaceAll()<\/li><li>search()<\/li><li>split()<\/li><\/ul>\n\n\n\n<p>Veremos estos m\u00e9todos en mayor profundidad m\u00e1s adelante.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como escribir un patr\u00f3n de expresi\u00f3n regular<\/h2>\n\n\n\n<p>Los patrones de expresiones regulares pueden ser escritos mediante <strong>caracteres simples<\/strong> o estar compuestos por combinaciones de caracteres simples y <strong>caracteres especiales<\/strong>. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mediante patrones simples<\/h3>\n\n\n\n<p><strong>Los patrones simples se componen d<\/strong>e caracteres simples y se emplean para encontrar una coincidencia directa de una combinaci\u00f3n de caracteres es una cadena de texto. Veamos un ejemplo:<\/p>\n\n\n\n<p>El patr\u00f3n <em>\/fue\/<\/em> coincide con combinaciones en cadenas de texto \u00fanicamente cuando sucede la secuencia exacta, por ejemplo el patr\u00f3n tendr\u00eda \u00e9xito en las siguientes cadenas de texto:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Que la <strong>fue<\/strong>rza te acompa\u00f1e.<\/li><li>\u00bfCu\u00e1l <strong>fue<\/strong> su campo de estudio?<\/li><\/ul>\n\n\n\n<p>Por contra, el patr\u00f3n<strong> no tendr\u00eda \u00e9xito<\/strong> en las siguientes cadenas de texto, debido a que los caracteres no siguen la secuencia exacta del patr\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Me veo obligado a&nbsp;r<strong>efu<\/strong>tar&nbsp;un punto importante.<\/li><li>Guard\u00e9 unas cuantas salchichas de to<strong>fu<\/strong> <strong>e<\/strong>n el frigor\u00edfico.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Usando caracteres especiales<\/h3>\n\n\n\n<p>Los patrones simples son muy limitados, en ocasiones querremos utilizar un patr\u00f3n para buscar un car\u00e1cter m\u00e1s de una vez en una cadena de texto, tambi\u00e9n es posible que haya varias combinaciones v\u00e1lidas para la informaci\u00f3n que introduce un usuario. Por esta raz\u00f3n, se emplean los <strong>caracteres especiales<\/strong> combinados con los caracteres simples.<\/p>\n\n\n\n<p>Por ejemplo, en el caso de querer validar un n\u00famero de tel\u00e9fono el usuario puede introducir el n\u00famero de maneras muy distintas; con espacios, sin espacios, con guiones, usando el prefijo del pa\u00eds (por ejemplo +34), etc. Por ello es necesario el uso de caracteres especiales en las expresiones regulares. Un patr\u00f3n v\u00e1lido podr\u00eda ser el siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/^&#91;\\+]?&#91;(]?&#91;0-9]{3}&#91;)]?&#91;-\\s\\.]?&#91;0-9]{3}&#91;-\\s\\.]?&#91;0-9]{4,6}$\/<\/code><\/pre>\n\n\n\n<p>Este patr\u00f3n tendr\u00eda \u00e9xito para los siguientes formatos:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>(123) 456-7890<\/li><li>(123)456-7890<\/li><li>123-456-7890<\/li><li>123.456.7890<\/li><li>1234567890<\/li><li>+34636363634<\/li><li>075-63546725<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"359\" src=\"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/html-and-javascript.jpg\" alt=\"C\u00f3digo HTML y JavaScipt para las expresiones regulares.\" class=\"wp-image-8450\" srcset=\"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/html-and-javascript.jpg 640w, https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/html-and-javascript-300x168.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de caracteres especiales en las expresiones regulares<\/h2>\n\n\n\n<p>Existen muchos caracteres especiales distintos utilizables en las expresiones regulares, los cuales se pueden dividir en varios grupos. A continuaci\u00f3n se listan los grupos junto con los caracteres especiales que puedes emplear en las expresiones regulares y su significado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Clases de caracteres<\/h3>\n\n\n\n<p>Se utilizan para distinguir tipos de caracteres, por ejemplo, entre letras y n\u00fameros. Los tipos disponibles son los siguientes:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes thCenter\"><table><thead><tr><th>Car\u00e1cter<\/th><th class=\"has-text-align-left\" data-align=\"left\">Significado<\/th><\/tr><\/thead><tbody><tr><td><strong>.<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><ul><li>Coincide con cualquier car\u00e1cter \u00fanico, por ejemplo, \/.o\/ coincide con \u00abdo\u00bb y \u00abno\u00bb.<\/li><\/ul><br><ul><li>Dentro de un juego de caracteres, el punto pierde su significado especial y concuerda con un punto literal.<\/li><\/ul><\/td><\/tr><tr><td>\\d<\/td><td class=\"has-text-align-left\" data-align=\"left\">Busca cualquier d\u00edgito (n\u00famero ar\u00e1bigo).<\/td><\/tr><tr><td>\\D<\/td><td class=\"has-text-align-left\" data-align=\"left\">Busca cualquier car\u00e1cter que no sea un d\u00edgito (n\u00famero ar\u00e1bigo)<\/td><\/tr><tr><td>\\w<\/td><td class=\"has-text-align-left\" data-align=\"left\">Busca cualquier car\u00e1cter alfanum\u00e9rico del alfabeto latino<\/td><\/tr><tr><td>\\W<\/td><td class=\"has-text-align-left\" data-align=\"left\">Busca cualquier car\u00e1cter que no sea un car\u00e1cter del alfabeto latino<\/td><\/tr><tr><td>\\s<\/td><td class=\"has-text-align-left\" data-align=\"left\">Busca un solo car\u00e1cter de espacio en blanco, incluidos el espacio, tabulaci\u00f3n, avance de p\u00e1gina, avance de l\u00ednea y otros espacios Unicode.<\/td><\/tr><tr><td>\\S<\/td><td class=\"has-text-align-left\" data-align=\"left\">Busca cualquier car\u00e1cter que no sea un espacio en blanco.<\/td><\/tr><tr><td>\\t<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con una tabulaci\u00f3n.<\/td><\/tr><tr><td>\\n<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con un salto de linea.<\/td><\/tr><tr><td>[\\b]<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con un car\u00e1cter de retroceso.<\/td><\/tr><tr><td>\\<\/td><td class=\"has-text-align-left\" data-align=\"left\">Indica que el siguiente car\u00e1cter se debe tratar de manera especial o \u00abescaparse\u00bb.<\/td><\/tr><tr><td>\\xhh<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con el car\u00e1cter con el c\u00f3digo hh (dos d\u00edgitos hexadecimales).<\/td><\/tr><tr><td>\\uhhhh<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con una unidad de c\u00f3digo UTF-16 con el valor hhhh (cuatro d\u00edgitos hexadecimales).<\/td><\/tr><tr><td>\\u{hhhh} o \\u{hhhhh}<\/td><td class=\"has-text-align-left\" data-align=\"left\">Hace coincidir el car\u00e1cter con el valor Unicode U+hhhh o U+hhhhh (d\u00edgitos hexadecimales)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Aserciones<\/h3>\n\n\n\n<p>Indican el comienzo y el final de l\u00edneas o palabras.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes thCenter\"><table><thead><tr><th>Car\u00e1cter<\/th><th class=\"has-text-align-left\" data-align=\"left\">Significado<\/th><\/tr><\/thead><tbody><tr><td>^<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con el comienzo de la entrada. Por ejemplo, \/^A\/ no coincide con la \u00abA\u00bb en \u00abMe llamo Andr\u00e9s\u00bb, pero coincide con la primera \u00abA\u00bb en \u00abAndr\u00e9s es mi nombre\u00bb.<\/td><\/tr><tr><td>$<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con el final de la entrada. Por ejemplo, \/r$\/ no coincide con la \u00abr\u00bb en \u00abespera\u00bb, pero s\u00ed en \u00abesperar\u00bb.<\/td><\/tr><tr><td>\\b<\/td><td class=\"has-text-align-left\" data-align=\"left\">Marca el l\u00edmite de una palabra.<\/td><\/tr><tr><td>\\B<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con un l\u00edmite sin palabra. Por ejemplo, \/\\Bme\/ coincide con \u00abme\u00bb en \u00abal mediod\u00eda\u00bb, y \/ay\\B\/ coincide con \u00abay\u00bb en \u00abposiblemente ayer\u00bb<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Cuantificadores<\/h3>\n\n\n\n<p>Los cuantificadores se emplean para indicar el n\u00famero de caracteres o expresiones que deben coincidir con el patr\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes thCenter\"><table><thead><tr><th>Car\u00e1cter<\/th><th class=\"has-text-align-left\" data-align=\"left\">Significado<\/th><\/tr><\/thead><tbody><tr><td>x*<\/td><td class=\"has-text-align-left\" data-align=\"left\">Concuerda 0 o m\u00e1s veces con el elemento \u00abx\u00bb anterior.<\/td><\/tr><tr><td>x+<\/td><td class=\"has-text-align-left\" data-align=\"left\">Encuentra 1 o m\u00e1s veces el elemento \u00abx\u00bb anterior Equivalente a {1,}. Por ejemplo, \/a+\/ coincide con la primera \u00aba\u00bb en \u00abpanda\u00bb.<\/td><\/tr><tr><td>x?<\/td><td class=\"has-text-align-left\" data-align=\"left\">Halla 0 o 1 vez el elemento \u00abx\u00bb anterior. Por ejemplo, \/e?le?\/ coincide con \u00abel\u00bb en \u00ab\u00e1ngel\u00bb y \u00abele\u00bb en \u00ab\u00e1ngeles\u00bb.<\/td><\/tr><tr><td>x{n}<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u00abn\u00bb es un n\u00famero entero positivo. Concuerda exactamente con \u00abn\u00bb apariciones del elemento \u00abx\u00bb anterior. Por ejemplo, \/a{2}\/ coincide con todas las &#8216;a&#8217; de &#8216;panda&#8217;.<\/td><\/tr><tr><td>x{n,}<\/td><td class=\"has-text-align-left\" data-align=\"left\">Donde \u00abn\u00bb es un n\u00famero entero positivo, concuerda con al menos \u00abn\u00bb apariciones del elemento \u00abx\u00bb.<\/td><\/tr><tr><td>x{n,m}<\/td><td class=\"has-text-align-left\" data-align=\"left\">Donde \u00abn\u00bb es 0 o un n\u00famero entero positivo, \u00abm\u00bb es un n\u00famero entero positivo. Coincide con al menos <em>\u00abn\u00bb <\/em>y como m\u00e1ximo \u00abm\u00bb.<\/td><\/tr><tr><td>x*?<br>x+?<br>x??<br>x{n}?<br>x{n,}?<br>x{n,m}?<\/td><td class=\"has-text-align-left\" data-align=\"left\">El car\u00e1cter ? despu\u00e9s del cuantificador hace que el cuantificador \u00abno sea codicioso\u00bb: lo cual significa que se detendr\u00e1 tan pronto como encuentre una coincidencia.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Grupos y rangos<\/h3>\n\n\n\n<p>Indican grupos y rangos de caracteres.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes thCenter\"><table><thead><tr><th>Car\u00e1cter<\/th><th class=\"has-text-align-left\" data-align=\"left\">Significado<\/th><\/tr><\/thead><tbody><tr><td>x|y<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con \u00abx\u00bb o \u00aby\u00bb. Por ejemplo, \/azul|rojo\/ coincide con \u00abazul\u00bb en \u00abCielo azul\u00bb y \u00abrojo\u00bb en \u00abCoche rojo\u00bb.<\/td><\/tr><tr><td>[xyz]<br>[a-c]<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con cualquiera de los caracteres incluidos. Puedes especificar un rango de caracteres mediante el uso de un gui\u00f3n, pero si el gui\u00f3n aparece como el primero o \u00faltimo car\u00e1cter entre corchetes, se toma como un gui\u00f3n literal para incluirse en el juego de caracteres como un car\u00e1cter normal. Por ejemplo, [abcd] es lo mismo que [a-d]. Coincide con la \u00abb\u00bb en \u00abbrisket\u00bb y la \u00abc\u00bb en \u00abchop\u00bb.<\/td><\/tr><tr><td>[^xyz]<br>[^a-c]<\/td><td class=\"has-text-align-left\" data-align=\"left\">Hallan cualquier cosa que no est\u00e9 encerrada entre corchetes. Puedes especificar un rango de caracteres mediante el uso de un gui\u00f3n. Por ejemplo, [^abc] es lo mismo que [^a-c]. Inicialmente halla la \u00abo\u00bb en \u00abbacon\u00bb.<\/td><\/tr><tr><td>(x)<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con x y recuerda la coincidencia. Por ejemplo, \/(foo)\/ encuentra y recuerda \u00abfoo\u00bb en \u00abfoo bar\u00bb. Se accede a las coincidencias utilizando el \u00edndice de los elementos del resultado ([1], \u2026, [n]) o desde las propiedades predefinidas del objeto RegExp ($1, \u2026, $9).<\/td><\/tr><tr><td>\\n<\/td><td class=\"has-text-align-left\" data-align=\"left\">\u00abn\u00bb es un n\u00famero entero positivo. Una referencia inversa a la \u00faltima sub-cadena que coincide con el par\u00e9ntesis n en la expresi\u00f3n regular. Por ejemplo, \/manzana(,)\\snaranja\\1\/ coincide con \u00abmanzana, naranja\u00bb en \u00abmanzana, naranja, cereza, melocot\u00f3n\u00bb.<\/td><\/tr><tr><td>\\k&lt;Nombre&gt;<\/td><td class=\"has-text-align-left\" data-align=\"left\">Una referencia inversa a la \u00faltima sub-cadena que coincide con el grupo de captura&nbsp;<strong>Nombrado<\/strong>&nbsp;especificado por&nbsp;<code>&lt;Nombre&gt;<\/code>.<br>Por ejemplo,&nbsp;<code>\/(?&lt;trato&gt;\\w+), si \\k&lt;trato&gt;\/<\/code>&nbsp;coincide con \u00abSr., s\u00ed Sr.\u00bb en \u00ab\u00bfMe copias? \u00a1Sr., s\u00ed Sr.!\u00bb.<\/td><\/tr><tr><td>(?&lt;Nombre&gt;x)<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con \u00abx\u00bb y la almacena en la propiedad de grupos de las coincidencias devueltas con el nombre especificado por &lt;Nombre&gt;. Por ejemplo, para extraer el c\u00f3digo de \u00e1rea de Estados Unidos de un n\u00famero de tel\u00e9fono, podr\u00edas usar&nbsp;<code>\/\\((?&lt;area&gt;\\d\\d\\d)\\)\/<\/code>.<\/td><\/tr><tr><td>(?:<em>x<\/em>)<\/td><td class=\"has-text-align-left\" data-align=\"left\">Coincide con \u00abx\u00bb pero no recuerda la coincidencia. La sub-cadena coincidente no se puede recuperar de los elementos del arreglo resultante ([1], \u2026, [n]) o de las propiedades predefinidas del objeto RegExp ($1, \u2026, $9).<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">M\u00e9todos que usan expresiones regulares en JavaScript<\/h2>\n\n\n\n<p>A continuaci\u00f3n se detallan los m\u00e9todos que usan las expresiones regulares que se han mencionado anteriormente.<\/p>\n\n\n\n<p>M\u00e9todos del objeto RegExp:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes thCenter\"><table><thead><tr><th>M\u00e9todo<\/th><th class=\"has-text-align-left\" data-align=\"left\">Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td>exec()<\/td><td class=\"has-text-align-left\" data-align=\"left\">Ejecuta una b\u00fasqueda por una coincidencia en una cadena. Devuelve un arreglo de informaci\u00f3n o null en una discrepancia.<\/td><\/tr><tr><td>test()<\/td><td class=\"has-text-align-left\" data-align=\"left\">Prueba una coincidencia en una cadena. Devuelve true o false.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>M\u00e9todos de <em>String<\/em> que emplean expresiones regulares:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes thCenter\"><table><thead><tr><th>M\u00e9todo<\/th><th class=\"has-text-align-left\" data-align=\"left\">Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td>match()<\/td><td class=\"has-text-align-left\" data-align=\"left\">Devuelve un array que contiene todas las coincidencias, incluidos los grupos de captura, o <em>null <\/em>si no se encuentra ninguna coincidencia.<\/td><\/tr><tr><td>matchAll()<\/td><td class=\"has-text-align-left\" data-align=\"left\">Devuelve un iterador que contiene todas las coincidencias, incluidos los grupos de captura.<\/td><\/tr><tr><td>search()<\/td><td class=\"has-text-align-left\" data-align=\"left\">Prueba una coincidencia en una cadena. Devuelve el \u00edndice de la coincidencia, o -1 si la b\u00fasqueda falla.<\/td><\/tr><tr><td>replace()<\/td><td class=\"has-text-align-left\" data-align=\"left\">Realiza una b\u00fasqueda por una coincidencia en una cadena de texto y reemplaza la coincidencia por una sub-cadena que se le pasa c\u00f3mo par\u00e1metro.<\/td><\/tr><tr><td>replaceAll() <\/td><td class=\"has-text-align-left\" data-align=\"left\">Ejecuta una b\u00fasqueda de todas las coincidencias en una cadena y reemplaza las sub-cadenas coincidentes con una sub-cadena de reemplazo.<\/td><\/tr><tr><td>split()<\/td><td class=\"has-text-align-left\" data-align=\"left\">Utiliza una expresi\u00f3n regular o un String fijo para dividir las coincidencias en un array de sub-cadenas.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Los m\u00e9todos propios de <em>String<\/em> son muy \u00fatiles y es posible utilizarlos en \u00e1mbitos muy diversos, no es expresamente necesario utilizarlos con expresiones regulares, tambi\u00e9n se pueden utilizar con cadenas de texto simples. Algunos, como es el caso del m\u00e9todo <em>split()<\/em> son muy \u00fatiles y se emplean muy a menudo en todo tipo de funciones.<\/p>\n\n\n\n<p>Esperamos que este art\u00edculo te haya sido de ayuda y que haya resuelto tus dudas sobre las expresiones regulares, no dudes en dejar un comentario o en echar un vistazo a <a href=\"https:\/\/carontestudio.com\/blog\/\">otros art\u00edculos del blog<\/a>. \u00a1Muchas gracias por llegar hasta aqu\u00ed!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este nuevo art\u00edculo te comentamos todo lo que necesitas saber sobre el uso de las expresiones regulares tambi\u00e9n conocidas como Regex en JavaScript. <\/p>\n","protected":false},"author":21,"featured_media":8590,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[50],"tags":[],"class_list":["post-8398","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion-web"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Expresiones Regulares en JavaScript - Blog - Desarrollo Web Vitoria<\/title>\n<meta name=\"description\" content=\"En este cap\u00edtulo hablamos de forma detalla sobre las expresiones regulares, que son, como utilizarlas, como crearlas y mucho m\u00e1s.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Expresiones Regulares en JavaScript - Blog - Desarrollo Web Vitoria\" \/>\n<meta property=\"og:description\" content=\"En este cap\u00edtulo hablamos de forma detalla sobre las expresiones regulares, que son, como utilizarlas, como crearlas y mucho m\u00e1s.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog de maketing | Caronte\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/carontewebstudio\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-25T12:37:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-18T16:21:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/regex-javascript.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1250\" \/>\n\t<meta property=\"og:image:height\" content=\"737\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Caronte Studio\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Caronte Studio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/\"},\"author\":{\"name\":\"Caronte Studio\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#\\\/schema\\\/person\\\/af53223b68efd2be07f600dfc0506979\"},\"headline\":\"Expresiones Regulares en JavaScript\",\"datePublished\":\"2022-01-25T12:37:27+00:00\",\"dateModified\":\"2022-10-18T16:21:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/\"},\"wordCount\":1828,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/regex-javascript.jpg\",\"articleSection\":[\"Programaci\u00f3n\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/\",\"url\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/\",\"name\":\"Expresiones Regulares en JavaScript - Blog - Desarrollo Web Vitoria\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/regex-javascript.jpg\",\"datePublished\":\"2022-01-25T12:37:27+00:00\",\"dateModified\":\"2022-10-18T16:21:54+00:00\",\"description\":\"En este cap\u00edtulo hablamos de forma detalla sobre las expresiones regulares, que son, como utilizarlas, como crearlas y mucho m\u00e1s.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/#primaryimage\",\"url\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/regex-javascript.jpg\",\"contentUrl\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/regex-javascript.jpg\",\"width\":1250,\"height\":737,\"caption\":\"Regex en javascipt\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/expresiones-regulares-en-javascript\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Expresiones Regulares en JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/\",\"name\":\"Blog de marketing | Caronte\",\"description\":\"En nuestro blog encontrar\u00e1s art\u00edculos semanales sobre SEO, marketing online, programaci\u00f3n web y mucho m\u00e1s.\",\"publisher\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#organization\",\"name\":\"Caronte - Agencia de marketing\",\"url\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/caronte-agencia-de-marketing-logo.png\",\"contentUrl\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/caronte-agencia-de-marketing-logo.png\",\"width\":1090,\"height\":155,\"caption\":\"Caronte - Agencia de marketing\"},\"image\":{\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/carontewebstudio\\\/\",\"https:\\\/\\\/www.instagram.com\\\/caronte_studio\\\/\",\"https:\\\/\\\/www.tiktok.com\\\/@carontewebstudio\",\"https:\\\/\\\/www.youtube.com\\\/@carontewebstudio\",\"https:\\\/\\\/es.linkedin.com\\\/company\\\/carontewebstudio\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/#\\\/schema\\\/person\\\/af53223b68efd2be07f600dfc0506979\",\"name\":\"Caronte Studio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4156e97024f8a40a8bcef2b24c0de8c6cfdd6857e2bc92e993c1a04b255e2e98?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4156e97024f8a40a8bcef2b24c0de8c6cfdd6857e2bc92e993c1a04b255e2e98?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4156e97024f8a40a8bcef2b24c0de8c6cfdd6857e2bc92e993c1a04b255e2e98?s=96&d=mm&r=g\",\"caption\":\"Caronte Studio\"},\"url\":\"https:\\\/\\\/carontestudio.com\\\/blog\\\/author\\\/caronte-studio\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Expresiones Regulares en JavaScript - Blog - Desarrollo Web Vitoria","description":"En este cap\u00edtulo hablamos de forma detalla sobre las expresiones regulares, que son, como utilizarlas, como crearlas y mucho m\u00e1s.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/","og_locale":"es_ES","og_type":"article","og_title":"Expresiones Regulares en JavaScript - Blog - Desarrollo Web Vitoria","og_description":"En este cap\u00edtulo hablamos de forma detalla sobre las expresiones regulares, que son, como utilizarlas, como crearlas y mucho m\u00e1s.","og_url":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/","og_site_name":"Blog de maketing | Caronte","article_publisher":"https:\/\/www.facebook.com\/carontewebstudio\/","article_published_time":"2022-01-25T12:37:27+00:00","article_modified_time":"2022-10-18T16:21:54+00:00","og_image":[{"width":1250,"height":737,"url":"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/regex-javascript.jpg","type":"image\/jpeg"}],"author":"Caronte Studio","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Caronte Studio","Tiempo de lectura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/#article","isPartOf":{"@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/"},"author":{"name":"Caronte Studio","@id":"https:\/\/carontestudio.com\/blog\/#\/schema\/person\/af53223b68efd2be07f600dfc0506979"},"headline":"Expresiones Regulares en JavaScript","datePublished":"2022-01-25T12:37:27+00:00","dateModified":"2022-10-18T16:21:54+00:00","mainEntityOfPage":{"@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/"},"wordCount":1828,"commentCount":0,"publisher":{"@id":"https:\/\/carontestudio.com\/blog\/#organization"},"image":{"@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/regex-javascript.jpg","articleSection":["Programaci\u00f3n"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/","url":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/","name":"Expresiones Regulares en JavaScript - Blog - Desarrollo Web Vitoria","isPartOf":{"@id":"https:\/\/carontestudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/#primaryimage"},"image":{"@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/regex-javascript.jpg","datePublished":"2022-01-25T12:37:27+00:00","dateModified":"2022-10-18T16:21:54+00:00","description":"En este cap\u00edtulo hablamos de forma detalla sobre las expresiones regulares, que son, como utilizarlas, como crearlas y mucho m\u00e1s.","breadcrumb":{"@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/#primaryimage","url":"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/regex-javascript.jpg","contentUrl":"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2022\/01\/regex-javascript.jpg","width":1250,"height":737,"caption":"Regex en javascipt"},{"@type":"BreadcrumbList","@id":"https:\/\/carontestudio.com\/blog\/expresiones-regulares-en-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/carontestudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Expresiones Regulares en JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/carontestudio.com\/blog\/#website","url":"https:\/\/carontestudio.com\/blog\/","name":"Blog de marketing | Caronte","description":"En nuestro blog encontrar\u00e1s art\u00edculos semanales sobre SEO, marketing online, programaci\u00f3n web y mucho m\u00e1s.","publisher":{"@id":"https:\/\/carontestudio.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/carontestudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/carontestudio.com\/blog\/#organization","name":"Caronte - Agencia de marketing","url":"https:\/\/carontestudio.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/carontestudio.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2025\/06\/caronte-agencia-de-marketing-logo.png","contentUrl":"https:\/\/carontestudio.com\/blog\/wp-content\/uploads\/2025\/06\/caronte-agencia-de-marketing-logo.png","width":1090,"height":155,"caption":"Caronte - Agencia de marketing"},"image":{"@id":"https:\/\/carontestudio.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/carontewebstudio\/","https:\/\/www.instagram.com\/caronte_studio\/","https:\/\/www.tiktok.com\/@carontewebstudio","https:\/\/www.youtube.com\/@carontewebstudio","https:\/\/es.linkedin.com\/company\/carontewebstudio"]},{"@type":"Person","@id":"https:\/\/carontestudio.com\/blog\/#\/schema\/person\/af53223b68efd2be07f600dfc0506979","name":"Caronte Studio","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/4156e97024f8a40a8bcef2b24c0de8c6cfdd6857e2bc92e993c1a04b255e2e98?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4156e97024f8a40a8bcef2b24c0de8c6cfdd6857e2bc92e993c1a04b255e2e98?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4156e97024f8a40a8bcef2b24c0de8c6cfdd6857e2bc92e993c1a04b255e2e98?s=96&d=mm&r=g","caption":"Caronte Studio"},"url":"https:\/\/carontestudio.com\/blog\/author\/caronte-studio\/"}]}},"_links":{"self":[{"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/posts\/8398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/comments?post=8398"}],"version-history":[{"count":53,"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/posts\/8398\/revisions"}],"predecessor-version":[{"id":8591,"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/posts\/8398\/revisions\/8591"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/media\/8590"}],"wp:attachment":[{"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/media?parent=8398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/categories?post=8398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/carontestudio.com\/blog\/wp-json\/wp\/v2\/tags?post=8398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}