Ich verwende den folgenden Code, um zu versuchen, die Zeichenfolge in Javascript zu kürzen, erhalte jedoch den im Titel genannten Fehler:
function trim(str) {
return str.replace(/^\s+|\s+$/g,'');
}
Bearbeiten:
Ich habe das Problem behoben. Tut mir leid, ich hätte den Code so eingeben sollen, wie ich ihn auch aufgerufen habe. Mir wurde klar, dass ich versehentlich das Objekt des Formularfelds selbst und nicht dessen Wert übergeben habe.
javascript
Brett
quelle
quelle
str
ist wahrscheinlich keine Saiteregex
Zeichenfolge selbst, was ohnehin nicht gut sein könnte.str.toString().replace(/^\s+|\s+$/g,'')
stattdessen.Antworten:
Ich vermute, dass der Code, der Ihre
trim
Funktion aufruft, keine Zeichenfolge an sie übergibt.Um dies zu beheben, können Sie
str
eine Zeichenfolge wie folgt erstellen :str.toString().replace(...)
... wie unten angegeben.
quelle
str.toString()
mein Problem behoben.str.toString()
ist nur dann die Lösung, wenn Sie einen korrekten Wert übergeben, der erfolgreich in eine Zeichenfolge konvertiert werden kann . in meinem Fall habe ich das Falsche insgesamt bestanden. :)wahrscheinliche Probleme:
num=35; num.replace(3,'three'); =====> ERROR
num=35; num.toString().replace(3,'three'); =====> CORRECT !!!!!!
num='35'; num.replace(3,'three'); =====> CORRECT !!!!!!
quelle
Das sollte funktionieren.
Wenn Sie nur die Saite kürzen möchten. Sie können einfach "str.trim ()" verwenden.
quelle
Sie übergeben keinen String, sonst hätte er eine
replace
Methode. Ich hoffe du hast nichtfunction trim(str) { return var.replace(blah); }
statt getipptreturn str.replace
.quelle
Sie sollten wahrscheinlich einige Überprüfungen durchführen, bevor Sie Ihre Funktion tatsächlich ausführen:
quelle
Haben Sie Ihre Funktion richtig aufgerufen? Dh. Ist das, was Sie als Parameter übergeben, wirklich eine Zeichenfolge?
Ansonsten sehe ich kein Problem mit Ihrem Code - das folgende Beispiel funktioniert wie erwartet
Wenn Sie jedoch Ihre Funktion mit etwas Nicht-String aufrufen, wird in der Tat der obige Fehler angezeigt:
quelle
Im Falle einer Zahl können Sie versuchen, in eine Zeichenfolge umzuwandeln:
quelle
Sie sollten die toString () -Methode des Java-Skripts für die Konvertierung in eine Zeichenfolge verwenden, da die Ersetzungsmethode eine Zeichenfolgenfunktion ist.
quelle
Ich habe das Problem behoben. Tut mir leid, ich hätte den Code so eingeben sollen, wie ich ihn auch aufgerufen habe. Ich habe festgestellt, dass ich versehentlich das Objekt des Formularfelds selbst übergeben habe und nicht dessen Wert.
Trotzdem danke für deine Antworten. :) :)
quelle