JS match gibt undefined zurück
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
anmerkung
array
bekommen
code
echt nett danke
ersetzen
fehler
funktion
inhalt
jemand
machen
match
methode
moment
sagen
string
treffen
wort
-
hi,
ich habe den string "(3+2)" mit match() in ein array gesplittet,
danach wird es wieder zusammengefügt...
wenn ich das ganze nun ausgebe, ist das erste Wort im string "undifined"
<html><head><script language="JavaScript"> function getstr(splitdata) { var data; for(var cnt = 0;cnt<splitdata.length;cnt++) { data += splitdata[cnt]; } return data; } function a() { var data = "(3+2)" var splitdata = data.match(/[\+\-\*\/\(\)]|(\d+)/g); data = getstr(splitdata); alert(data); } </script></head><body> <input type=button value="a" onClick="a()"> </body></html>
kann mir jemand sagen warum?
und wie ich das weg bekommen?
wäre echt nett, danke
Beitrag zuletzt geändert: 5.9.2013 15:55:07 von tft-development -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
var data; // setz eine Variable mit dem Inhalt "undefined", weil du ihn nicht definiert hast data += "5"; // macht undefined5 draus, weil du hängst ja etwas dran
Der Fehler ist nicht dein match, sondern dein getstr, korrigiert heißt es:
function getstr(splitdata) { var data=""; for(var cnt = 0;cnt<splitdata.length;cnt++) { data += splitdata[cnt]; } return data; }
Guter Tipp: Auch in Javascript ist es nicht immer schlecht, seine Daten zu preinitialisieren. Andernfalls werden die Daten auf "undefined" gestezt, weil du es ja nicht definiert hast.
Liebe Grüße -
Oder man weist der Funktion eine Variable zu, und übergibt den Inhalt erst mit dem onClick -Ereignis.
<html><head><script language="JavaScript"> function getstr(splitdata) { var data =""; for(var cnt = 0;cnt<splitdata.length;cnt++) { data += splitdata[cnt]; } return data; } function a(data) { var splitdata = data.match(/[\+\-\*\/\(\)]|(\d+)/g); data = getstr(splitdata); alert(data); } </script></head><body> <input type=button value="a" onClick="a('(3+2)')"> </body></html>
Beitrag zuletzt geändert: 5.9.2013 17:02:23 von menschle -
Hallo,
eine Anmerkung ist außerdem noch zu treffen, im Moment ist die Funktion getstr auch noch nicht mehr als ein unglaublich große join-Methode. Oder um es kurz zu machen könnte man den kompletten Funktionsaufruf so ersetzen:function a() { var data = "(3+2)" var splitdata = data.match(/[\+\-\*\/\(\)]|(\d+)/g); data = splitdata.join(''); alert(data); }
Mit freundlichen Grüßen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage