Quitar espacios
-
Tengo que hacer una pagina con una funcion en javascript que cuando ingreses una cadena en un campo de texto te diga si es un palindromo(que se lee igual de adelante para atras que al reves) o no.
Para eso necesito sacarle los espacios a la cadena y no se bien como hacerlo.
Si alguien me da una mano, porque trato pero no me sale, lo que tengo hasta ahora es:
function hacer(){
var a=document.form.campo.value;
if (isNaN(a)){
var i,c;
var sinesp;
for (c = 0; c < a.length; c++) {
if(a.charAt(c) == " "){
//aca hay que sacar los espacios!
}
}
for (i = 0; i < a.length; i++) {
if (a.charAt(i) != a.charAt(a.length-1-i)) {
alert("no es palindromo");
}
}
alert("es palindromo");
}
Saludos
Pame -
Estuve consultando en la web, y al final arme esta función que anda bien, pero hay una parte que no entiendo que hace, si alguien me la puede explicar se lo agradecería...
if(a.charAt(c) == " "){
var sinesp = a;
var re = /\s/g; <----------- desde acá incluído esta
if(a.search(re) != -1){
sinesp = a.replace(re, replacement);
} <------------ Hasta acá
document.form.campo1.value=sinesp;
} -
la variable "re" simplemente contiene la expresion regular para no tener que repetirla varias veces. esa expresion regular va a matchear (no se me ocurre la palabra en castellano) con cualquier simbolo de espacio (puede ser el que se pone con la barra espaciadora o bien un tab) tantas veces como aparezca en la linea (eso lo indica el modificador "g"). en realidad mi funcion quitaba los espacios al principio y al final, asi estas sacando los que estan entremedio de las palabras tambien. la cuestion que el a.replace con esta expresion regular es lo que esta quitando todo espacio que haya en la cadena. saludos!
-
function trimAll(cadena) {
if(cadena != ""){
var sinesp = cadena;
var re = /\s/g;
if(cadena.search(re) != -1){
sinesp = cadena.replace(re,"");
}
return sinesp;
}
}
La función completa para quien la necesite. Esta quita todos los espacios de una cadena.
AC soft live
