Uno de los métodos que más hecho de menos en Javascript para tratar cadenas es trim(). Un método que se encarga de eliminar espacios en blanco del principio y fin de la cadena, de modo que si nos dejamos un espacio de más este método nos lo elimina y nos deja la cadena limpia y lista para usar. En la mayoría de lenguajes de programación hay alguna versión o varias versiones del mismo, pero para Javascript se ve que se cansaron de escribir y se dejaron esta función. Esperemos que en la versión 1.7 de Javascript podamos disfrutar de este método, sin tener que recurrir a modificaciones.
Para solucionar esto, podemos usar prototype (el método no la libraría) para modificar las propiedades del objeto String.
Prototype
Prototype, además de ser el nombre de una librería Javascript, es un método de todos los objetos en javascript, mediante prototype podemos modificar un objeto añadiendole atributos o métodos nuevos, esto incluye los objetos nativos de Javascript.
De esta forma podemos convertir cualquier objeto en un aliado para nuestras intenciones, únicamente tendremos que definir los atributos y métodos necesario para ello.
Cat.prototype.color = null
Sheeba.color = "black"
En este ejemplo vemos como le aplicamos al objeto Cat, definido anteriormente un atributo nuevo referente al color, a partir de ese momento los objetos hijos generados apartir de Cat tendrán esa propiedad disponible.
De igual modo podremos añadir métodos.
Cat.prototype.miau= function(){alert("Miau!!");}
Sheeba.miau();
Realmente fácil ¿no? De esta forma podemos añadir una funcionalidad que nos interese a cualquier objeto.
Añadiendo trim()
La función Trim() no es más que una expresión regular que se encarga de elimiar los caracteres en blanco del principio y fin de la cadena.
/^\s+|\s+$/g,''
Esta expresión en sí son 2, separadas por la tubería ( | ) indica las dos posibles posiciones de los espacios en blanco, ^\s+
sería el principio de la cadena, y \s+$
el final. Gracias a la potencia de las expresiones regulares con esta línea podemos conseguir que cualquier cadena se limpie de caracteres en blanco. Únicamente nos queda reemplazarlos y añadirlos al objeto String
.
String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,'') }
Con esta línea nuestro objeto String
ya dispone de un nuevo método, y por lo tanto nuestras funciones podrán disponer de él. La modificación no es permanente únicamente dispondremos de ella mientras dure la sesión en la que se lanzó en prototype.
Para usar nuestro nuevo método únicamente tendremos que llamarlo como si de un método normal se tratara.
var sMyVar = new String (" testing trim ");
alert(sMyVar.trim());
Al tratarse del objeto String, podremos además usarlo de forma implicita.
document.getElementById("txtMyTextBox").value.trim();
15 comentarios, 3 referencias
+
#