var.replace no es una función

Resuelto Brett asked hace 14 años • 11 respuestas

Estoy usando el siguiente código para intentar recortar la cadena en Javascript pero aparece el error mencionado en el título:

function trim(str) {
    return str.replace(/^\s+|\s+$/g,'');
}

Editar:

Solucioné el problema... lo siento, debería haber puesto el código sobre cómo lo estaba llamando también... me di cuenta de que accidentalmente estaba pasando el objeto del campo del formulario en lugar de su valor.

Brett avatar Jan 24 '11 00:01 Brett
Aceptado

Supongo que el código que llama a su trimfunción en realidad no le está pasando una cadena.

Para solucionar este problema, puedes hacer struna cadena como esta: str.toString().replace(...)
...como Alper señala a continuación.

ClosureCowboy avatar Jan 23 '2011 17:01 ClosureCowboy

problemas probables:

  • la variable es NÚMERO (en lugar de cadena);
    num=35; num.replace(3,'three'); =====> ERROR
    num=35; num.toString().replace(3,'three'); =====> CORRECT !!!!!!
    num='35'; num.replace(3,'three'); =====> CORRECT !!!!!!
  • la variable es un objeto (en lugar de una cadena);
  • la variable no está definida;
T.Todua avatar Sep 08 '2014 09:09 T.Todua

Reemplazar no reemplazaría los números. Reemplaza únicamente cuerdas.

Esto debería funcionar.

function trim(str) {
    return str.toString().replace(/^\s+|\s+$/g,'');
}

Si solo quieres recortar la cuerda. Simplemente puedes usar "str.trim()"

Kareem avatar Sep 07 '2016 05:09 Kareem

No estás pasando una cadena, de lo contrario tendría un replacemétodo. Espero que no hayas escrito function trim(str) { return var.replace(blah); }en lugar de return str.replace.

meder omuraliev avatar Jan 23 '2011 17:01 meder omuraliev