Scriptia. Javascript y buenas prácticas en español



Scriptia / artículos / Eliminar espacios en blanco usando expresiones regulares

Eliminar espacios en blanco usando expresiones regulares

Saltar a Anotaciones relacionadas

Por suerte o por desgracia, en más de una ocasión nos encontramos con que ECMAScript no nos provee de todos los métodos que podemos llegar a necesitar en nuestro trabajo. Uno de los casos flagrantes es el de recortar espacios en blanco al principio y al final de una cadena: ni la especificación ni ninguna de sus implementaciones (JavaScript, JScript) incluyen un método trim para eliminar esos espacios de sobra.

Y es razonable, puesto que esta función es sencilla de implementar.

Mucho más sencilla de lo que algunos creen, puesto que el motor de expresiones regulares de ECMAScript es potente, muy potente. Usémoslo (aunque sea en modo light):

function ltrim(s) {
    return s.replace(/^\s+/, "");
}

function rtrim(s) {
    return s.replace(/\s+$/, "");
}

function trim(s) {
    return rtrim(ltrim(s));
}

Y dejémonos de recorrer cadenas carácter por carácter (lo he visto hoy en un código que me abstengo de copipegar por cuestiones éticas).

En cuanto a lo del llegar a necesitar… qué queréis que os diga, prefiero escribir (y reutilizar) unas cuantas líneas de código a usar un lenguaje elefante plagado de incoherencias.



Publicidad

3 comentarios RSS

1 Jorge kuku (2008-09-20 @ 8:20 am):

La mejor forma de hacerlo es letra por Letra Esta es mi Solucion Para dejar un Solo Espacio en Blaco en vez de varios.
Funciona perfectamente.

Obtengo el tamaño de la cadena.
y voy contando uno a uno cada caracter.
El actual y el siguiente.
sabiendo que no pueden existir 2 espacios en blanco seguidos.

Se puede Adaptar para que Borre el Primer espacio en Blanco y el Ultimo si lo desea. Accion que hace cuando la cadena es de esta forma ” o abc q ” Dejando el espacio en blanco primero. por que la condicion coincide en ” ” == “o” y “q”==” ” Dejando el espacio de ambos en blanco.

La solucion seria cambiar en el if:

if ( str1==" " && str2==" " || i=1 || i=strlen-1 )

ESTA ES LA FUNCION para Borrar espacios en Blanco en Javascript

function Jclean(str) {
var strlen = str.length;
alert (strlen);
var nuevo = "";
for (i=0; i<=strlen-1;i++){
str1 = str.substr(i,1);
str2 = str.substr(i+1,1);
alert (str1+"-->"+str2);
if (str1==" " && str2==" "){
}else{
nuevo += str.substr(i,1);
alert ("NUEVO "+nuevo);
}
}
return nuevo;
}

Atentamente; kukugt

2 Jorge kuku (2008-09-20 @ 8:57 am):

Este es el Codigo Sin espacios al Principio ni al final, Y no mas de un Espacio entre palabras.

function Jclean(str) {
var strlen = str.length;
var nuevo = "";
for (i=0; i<=strlen-1;i++){
str1 = str.substr(i,1);
alert("-"+str1+"-"+i);
str2 = str.substr(i+1,1);
if (str1==" " && str2==" "){
}else{
nuevo += str.substr(i,1);
}

}
if (nuevo.substr(0,1)==" "){
    nuevo = nuevo.substr(1,nuevo.length-1);
}
if (nuevo.substr(nuevo.length-1,1)==" "){
    nuevo = nuevo.substr(0,nuevo.length-1);
}
return nuevo;

}

Atentamente; kukugt

3 Jorge kuku (2008-09-20 @ 9:10 am):

Si se dan cuenta Este Escript Tambien Elimina los Saltos o quiebres de pagina o n o o Enter o espacios que dejan los

Elimina esos molestos saltos de linea y los espacios enblanco y deja solo los Necesarios para meterlos en la Base de Datos.

Este es un Gran aporte ya que no encontre ningun Ejemplo o una Sintaxis de este tipo y todas las demas son Fallidas

Espero que les sirva de muchooo

Atentamente; kukugt

Guatemala


Di la tuya

Puedes usar markdown y estas etiquetas HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> . Por favor, evita el abuso de las mayúsculas y cuida la ortografía.


Acerca de Scriptia

Saltar a la caja de búsqueda

Scriptia forma parte del PDM de Choan C. Gálvez, desarrollador web residente en Barcelona. Scriptia pretende mejorar la calidad de la documentación acerca de javascript disponible en español.