From 5fb2e03296425d61e846bf671f3483ad4ef98447 Mon Sep 17 00:00:00 2001 From: Carlos Ortiz Gutierrez Date: Fri, 19 Jun 2020 18:45:33 -0600 Subject: [PATCH 1/2] actualizacion --- figures.sketch | Bin 5357168 -> 5357084 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/figures.sketch b/figures.sketch index c740ac5772b7c4391f0737c21955aa826164fbb9..a50292b70185c49ef9b78785b419c0c1d1a4503d 100644 GIT binary patch delta 705 zcmWN`X-E@b0Ecm0Ub%FdPMuTJm2+O3P3JY2*VJj7I#W#0AWAS%u{7BzmJ2 z^hU<(aa1-OE546;ruEPF1SV_B1~A$38^}tQ9aggJH*&~~&Yn7s8J)v~4s{94rZ%!S z$Hd;;3HA_JRgSm5p;hIiSjQJ3tKc?*M_39asorIwde`~fO`@-Gp-w_y;kq+{XFNCc z5dM91`z6GWUANkPQq;{xQMbE&9x2&$r#vW6lx%Xg9B{$HSz1NVqF1gA^)B2bDW;WN zcR7}{TzxEB=D1xR@Y&!x%OT`@8@}T2q4!uV8LaWaV2$seGW4$c4#*JabE^IOk zCCz;TH1`D^n9x)nT=|J?M~6_M*p3dX%O$0nFqCS9Yq2E5Af!adFodTEpkp(<%7HK} z;b2(Kvai9jSgd7Z_=fn7J3?B;94%5g5g~TC?iZ0>N2YorFx3-zWWiLM#NQUn9TFQ2 z*11tHWJFsSMMXnf81uUhjh|x%t`eRk7CcE@O)+{q<3gpxun-5sg0xeEf{XFb-@uwJ zb1nnBQ6`E;>MPlff=G{KkRF{|k-$rm5avk~sst!hiS|}dXC zOl4Ou9ape=={)--b{v(9@t{?FnH-ENDHWB4gVF5nNIY1}-eZw=b2i$|IVtrpm8*5? E|3>RfdjJ3c delta 884 zcmWlXYeAX$nrM$bTlR(7`$|NckDK)z&nC2@=VWMdk zNwXA7YMAzb8ANzVLujZaM5+0~tjv)Y5N!3|hd;k_e$Vq9&Utz7?~HK`h^}7BVP4cr zr4Knwjc$U~O>jsz!F~0D!_fK4U3s^_cS7EeQ4YiQ>v@P7_3O>ODzTqSv!J;&{qua;YosxeeI?zYn%5Y2YR&4UeTtl-ix$)Z~sBG>+7Tq_Hel!Qp)W(_*V~? zU3jSYJ=|ER58_K>p?>9=*he<_QDlQ`0k>yeM`VaUxsC)R9>7fgNT59ECwa7=GaOGHO+0lBp95!^7PBY@ zSI@+7XHZ*_$o@2Lt=BWcw4 pG`&@hTI@plwl!)BLpmu88Aq>i89`fhp~k5#=7xqxcMCN&n*ZBqQ9S?v From da207f6904c2b77a3678a8c3f959e2eb1a345bb6 Mon Sep 17 00:00:00 2001 From: Carlos Ortiz Gutierrez Date: Fri, 19 Jun 2020 19:01:42 -0600 Subject: [PATCH 2/2] merge2 --- .../15-function-basics/function_basics.png | Bin 22267 -> 22266 bytes .../15-function-basics/function_basics@2x.png | Bin 45318 -> 45317 bytes .../02-regexp-methods/article.md | 203 ++++++++++++++++++ .../02-regexp-methods/love-html5-classes.svg | 1 + 4 files changed, 204 insertions(+) create mode 100644 9-regular-expressions/02-regexp-methods/article.md create mode 100644 9-regular-expressions/02-regexp-methods/love-html5-classes.svg diff --git a/1-js/02-first-steps/15-function-basics/function_basics.png b/1-js/02-first-steps/15-function-basics/function_basics.png index f5e6f94183ff28ae7b6b61d97d39c82d5d42e80d..0f4f5291b0f079d3869cb8ddbd0d776e0a0e9eff 100644 GIT binary patch delta 15 WcmeypmhsnGMwZS1KlhES-@*VoU para conocer el soporte actualizado. Al momento de escribirse este manual, no estaban soportados. + +Afortunadamente, hay una alternativa, que funciona en todas partes. Podemos usar una expresión regular como `pattern:[\s\S]` para que coincida con "cualquier carácter". + +```js run +alert( "A\nB".match(/A[\s\S]B/) ); // A\nB (coincide!) +``` + +El patrón `pattern:[\s\S]` literalmente dice: "con carácter de espacio O sin carácter de espacio". En otras palabras, "cualquier cosa". Podríamos usar otro par de clases complementarias, como `pattern:[\d\D]`, eso no importa. O incluso `pattern:[^]`, que significa que coincide con cualquier carácter excepto nada. + +También podemos usar este truco si queremos ambos tipos de "puntos" en el mismo patrón: el patrón actual `pattern:.` comportándose de la manera regular ("sin incluir una línea nueva"), y la forma de hacer coincidir "cualquier carácter" con el patrón `pattern:[\s\S]` o similar. +```` + +````warn header="Presta atención a los espacios" +Por lo general, prestamos poca atención a los espacios. Para nosotros, las cadenas `subject:1-5` y `subject:1 - 5` son casi idénticas. + +Pero si una expresión regular no tiene en cuenta los espacios, puede que no funcione. + +Intentemos encontrar dígitos separados por un guión: + +```js run +alert( "1 - 5".match(/\d-\d/) ); // null, sin coincidencia! +``` + +Vamos a arreglarlo agregando espacios en la expresión regular `pattern:\d - \d`: + +```js run +alert( "1 - 5".match(/\d - \d/) ); // 1 - 5, funciona ahora +// o podemos usar la clase \s: +alert( "1 - 5".match(/\d\s-\s\d/) ); // 1 - 5, tambien funciona +``` + +**Un espacio es un carácter. Igual de importante que cualquier otro carácter.** + +No podemos agregar o eliminar espacios de una expresión regular y esperar que funcione igual. + +En otras palabras, en una expresión regular todos los caracteres importan, los espacios también. +```` + +## Resumen + +Existen las siguientes clases de caracteres: + +- `pattern:\d` -- dígitos. +- `pattern:\D` -- sin dígitos. +- `pattern:\s` -- símbolos de espacio, tabulaciones, líneas nuevas. +- `pattern:\S` -- todo menos `pattern:\s`. +- `pattern:\w` -- letras latinas, dígitos, guión bajo `'_'`. +- `pattern:\W` -- todo menos `pattern:\w`. +- `pattern:.` -- cualquier caracter, si la expresión regular usa la bandera `'s'`, de otra forma cualquiera excepto **línea nueva** `\n`. + +...¡Pero eso no es todo! + +La codificación Unicode, utilizada por JavaScript para las cadenas, proporciona muchas propiedades para los caracteres, como: a qué idioma pertenece la letra (si es una letra), es un signo de puntuación, etc. + +Se pueden hacer búsquedas usando esas propiedades. Y se requiere la bandera `pattern:u`, analizada en el siguiente artículo. diff --git a/9-regular-expressions/02-regexp-methods/love-html5-classes.svg b/9-regular-expressions/02-regexp-methods/love-html5-classes.svg new file mode 100644 index 000000000..9c88cc088 --- /dev/null +++ b/9-regular-expressions/02-regexp-methods/love-html5-classes.svg @@ -0,0 +1 @@ + \ No newline at end of file