website stats » Javascript | Solo Código |

Escapando caracteres especiales en JS

Escrito por J.F. el Jueves, 24 de Enero del 2008 a las 15:36

Vamos a ver una cosa bastante simple, pero que si llevas poco tiempo programando quizás desconozcas. Si en una variable queremos meter caracteres especiales como son la contrabarra \, un salto de línea, un tabulador o unas comillas, habrá que escaparlos, es decir, indicarle al navegador que queremos introducir un caracter especial, que de no ser escapado, "confundiría" la expresión. Por tanto, si a una variable JavaScript le queremos asignar algunos de esos caracteres, tendremos que susituirlos de la siguiente manera:

\n Equivale a un salto de línea
\t Equivale a un tabulador
\' Es lo mismo que incluir una comilla simple
\" Es lo mismo que incluir una comilla doble
\\ Sirve para incluir una barra
Así pues, para ver un ejemplo, podemos declarar una variable y mostrarla en un alert para comprender la sencilla lección:

JavaScript:
  1. var ejemplo = 'En Javascript podemos declarar variables usando:\nComillas simples \'\'\tO comillas dobles\"\"\nPara hacer comentarios de una linea se usan al comienzo 2 barras\\\\';
  2. alert(ejemplo);

Espero que le sea útil a los más novatos :P

Escribir comentario

Categoria: Javascript

Reemplazar cadenas en Javascript con replace

Escrito por J.F. el Jueves, 10 de Enero del 2008 a las 18:42

Vamos con un tema sencillito de Javascript, reemplazar una misma cadena en todo el texto. No soy un avanzado experto en Javascript, por lo que de vez en cuando aprendo alguna cosilla nueva en el trabajo, y si a mí me es de utilidad pienso que a otros también les puede servir.

En ésta ocasión necesitaba reemplazar en una cadena varias veces un mismo texto. Recurrí a la función replace, pero me dí cuenta que utilizándola de la forma normal tan solo reemplaza la cadena que queremos en su primera aparición. Por tanto si queremos cambiar varias veces la palabra perro por gato en una variable, no bastaría con hacerlo de la siguiente forma:

JavaScript:
  1. cadena.replace("perro", "gato");

Para que se reemplace en todo el texto tan solo deberemos utilizar la siguiente expresión regular: .replace(/loquequeramos/g, "gato");
Por tanto finalmente resolvemos facilmente el problema de la siguiente forma:

JavaScript:
  1. cadena.replace(/perro/g, "gato");

Comentarios (12)

Categoria: Javascript

IE7.js, Internet Explorer siguiendo los estandares

Escrito por J.F. el Martes, 8 de Enero del 2008 a las 18:26

Pues sí tal y como suena, IE7.js es una hoja Javascript que puede hacer que Internet Explorer se comporte según los estandares, corrigiendo su erróneo comportamiento en determinadas situaciones. Gracias a IE7.js podemos conseguir que en explorer las imágenes png con transparencia se vean correctamente, corregir discrepancias en reglas CSS con otros navegadores, etc. Simplemente te descargar el js, y lo incluyes en tus páginas. Puede ser una buena forma de evitar recurrir a hacks.

Enlaces: | Autor IE7.js 2.0 | Demo | Descargar
Vía: | Anieto2K

Comentarios (6)

Categoria: Javascript, General

50 ejemplos de jQuery

Escrito por J.F. el Viernes, 21 de Diciembre del 2007 a las 10:56

50 ejemplos de lo que se puede llegar a hacer con el uso de jQuery:

jQuery

Enlace: | Ejemplos jQuery

Escribir comentario

Categoria: Javascript

Validar formato de fecha con Javascript

Escrito por J.F. el Lunes, 10 de Diciembre del 2007 a las 20:20

Un ejemplo, mediante el uso de 2 funciones, para validar que el formato de una fecha sea válido (mm/dd/aaaa) con Javascript. Tan solo necesita recibir el objeto, y al salir del campo valida si la fecha tiene un formato correcto o no. Las funciones Javascript a usar son las siguientes:

JavaScript:
  1. function esFechaValida(fecha){
  2.     if (fecha != undefined && fecha.value != "" ){
  3.         if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
  4.             alert("formato de fecha no válido (dd/mm/aaaa)");
  5.             return false;
  6.         }
  7.         var dia  =  parseInt(fecha.value.substring(0,2),10);
  8.         var mes  =  parseInt(fecha.value.substring(3,5),10);
  9.         var anio =  parseInt(fecha.value.substring(6),10);
  10.  
  11.     switch(mes){
  12.         case 1:
  13.         case 3:
  14.         case 5:
  15.         case 7:
  16.         case 8:
  17.         case 10:
  18.         case 12:
  19.             numDias=31;
  20.             break;
  21.         case 4: case 6: case 9: case 11:
  22.             numDias=30;
  23.             break;
  24.         case 2:
  25.             if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
  26.             break;
  27.         default:
  28.             alert("Fecha introducida errónea");
  29.             return false;
  30.     }
  31.  
  32.         if (dia>numDias || dia==0){
  33.             alert("Fecha introducida errónea");
  34.             return false;
  35.         }
  36.         return true;
  37.     }
  38. }

JavaScript:
  1. function comprobarSiBisisesto(anio){
  2. if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
  3.     return true;
  4.     }
  5. else {
  6.     return false;
  7.     }
  8. }

La segunda tan sólo verifica si el año es bisiesto, para permitir en Febrero poner 28 ó 29 días. Aquí tienes un código de ejemplo, que al salir del campo verifica si lo escrito en el campo de texto tiene el formato de fecha dd/mm/aaaa.

HTML:
  1. function esFechaValida(fecha){
  2.     if (fecha != undefined && fecha.value != "" ){
  3.         if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
  4.             alert("formato de fecha no válido (dd/mm/aaaa)");
  5.             return false;
  6.         }
  7.         var dia  =  parseInt(fecha.value.substring(0,2),10);
  8.         var mes  =  parseInt(fecha.value.substring(3,5),10);
  9.         var anio =  parseInt(fecha.value.substring(6),10);
  10.  
  11.     switch(mes){
  12.         case 1:
  13.         case 3:
  14.         case 5:
  15.         case 7:
  16.         case 8:
  17.         case 10:
  18.         case 12:
  19.             numDias=31;
  20.             break;
  21.         case 4: case 6: case 9: case 11:
  22.             numDias=30;
  23.             break;
  24.         case 2:
  25.             if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
  26.             break;
  27.         default:
  28.             alert("Fecha introducida errónea");
  29.             return false;
  30.     }
  31.  
  32.         if (dia>numDias || dia==0){
  33.             alert("Fecha introducida errónea");
  34.             return false;
  35.         }
  36.         return true;
  37.     }
  38. }
  39.  
  40. function comprobarSiBisisesto(anio){
  41. if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
  42.     return true;
  43.     }
  44. else {
  45.     return false;
  46.     }
  47. }
  48. </script>
  49. </head>
  50.  
  51. <input type="text" onBlur="esFechaValida(this);"/>
  52. </body>
  53.  
  54. </html>

Comentarios (24)

Categoria: Javascript

Eliminar etiquetas HTML con Javascript

Escrito por J.F. el Viernes, 7 de Diciembre del 2007 a las 13:47

Vamos a ver como podemos eliminar todas las etiquetas HTML de un texto mediante el uso de Javascript y una expresión regular. Eliminar las etiquetas HTML de un texto es necesario multitud de veces, para evitar que un usuario malintencionado haga mal uso de la permisividad del uso de dichas etiquetas.

Seguro que en alguna ocasión has observado que en foros, en vez de permitir utilizar etiquetas HTML para dar formato a los mensajes, utilizan otro tipo de etiquetas denominadas BBCode. Sin duda la principal razón de evitar la inserción de código HTML es frenar los ataques XSS como ya hemos comprobado en anteriores ocasiones. La función en cuestión para quitar de una cadena todo resto de HTML, es la siguiente:

JavaScript:
  1. function stripHTML(cadena)
  2. {
  3.     return cadena.replace(/<[^>]+>/g,'');
  4. }

Con el empleo de esa expresión regular, eliminamos cualquier cosa que se encuentre delimitada con los caracteres < >. Simplemente hemos de pasarle como parámetro, la variable en la que almacenemos el texto del cual queremos eliminar cualquier signo de HTML. A continuación un pequeño ejemplo, en el cual podrás escribir en un textarea todo el código que quieras, y al hacer click en un botón en el de al lado aparecerá el resultado sin las etiquetas HTML:

HTML:
  1. function stripHTML(cadena)
  2. {
  3.     document.all.sinHTML.value = cadena.replace(/<[^>]+>/g,'');
  4. }
  5. </script>
  6. </head>
  7. <h2>Introduce texto con HTML</h2>
  8.  
  9. <p><textarea cols="40" rows="10" name="texto" onBlur="stripHTML(this.value);">
  10. &lt;p align="center"&gt;El texto no contendra el formato HTMl, porque &lt;b&gt;va a ser eliminado.&lt;/b&gt;&lt;hr/&gt;&lt;/p&gt;
  11. </textarea></p>
  12.  
  13. <p><input type="button" value="Eliminar HTML" onClick="stripHTML(document.all.texto.value);"/></p>
  14.  
  15. <h2>Texto sin HTML</h2>
  16.  
  17. <p><textarea cols="40" rows="10" name="sinHTML" readOnly="true">
  18. </textarea></p>
  19.  
  20. </body>
  21. </html>

Comentarios (2)

Categoria: Javascript

Solo Código

Solo Código es una colección de códigos de todo tipo que pueden resultar útiles para el diseño de páginas web. Está enfocado tanto para aquellos que son expertos, como para aquellos principiantes que quieren encontrar recursos útiles, o no saben implementar determinadas funciones en sus webs. No olvides que Solo Código es un blog de Informática Práctica, donde tenemos otras secciones interesantes como:
| Tutoriales | Trucos | Software | Links | Buscar |