155 votes

var.replace n'est pas une fonction

J'utilise le code ci-dessous pour essayer de découper la chaîne en Javascript mais j'obtiens l'erreur mentionnée dans le titre :

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

Edita:

J'ai corrigé le problème.... désolé j'aurais dû mettre le code sur la façon dont je l'appelais aussi.... me suis rendu compte que je passais accidentellement l'objet du champ de formulaire lui-même plutôt que sa valeur.

260voto

ClosureCowboy Points 5023

Je pense que le code qui appelle votre trim est no en lui passant une chaîne de caractères.

Pour remédier à ce problème, vous pouvez faire str une chaîne de caractères, comme ceci : str.toString().replace(...)
...comme <a href="https://stackoverflow.com/users/2402577/alper">alper </a>a été soulignée ci-dessous.

95voto

snm-yah Points 2067

Questions probables :

  • est la variable NUMÉRO (au lieu de string) ;
    num=35; num.replace(3,'three'); =====> ERROR
    num=35; num.toString().replace(3,'three'); =====> CORRECT !!!!!!
    num='35'; num.replace(3,'three'); =====> CORRECT !!!!!!
  • est la variable objet (au lieu de string) ;
  • n'est pas définie ;

14voto

Karim Points 161

Remplacer ne remplacerait pas les chiffres. Il ne remplace que les chaînes de caractères.

Cela devrait fonctionner.

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

Si vous souhaitez uniquement couper la ficelle. Vous pouvez simplement utiliser "str.trim()"

6voto

meder Points 81864

Vous ne passez pas une chaîne de caractères, sinon il y aurait un replace méthode. J'espère que vous n'avez pas tapé function trim(str) { return var.replace(blah); } au lieu de return str.replace .

6voto

gion_13 Points 15594

Vous devriez probablement effectuer quelques validations avant d'exécuter votre fonction :

function trim(str) {
    if(typeof str !== 'string') {
        throw new Error('only string parameter supported!');
    }

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X