Aus <textarea>-Eingabe die Zeilenumbrüche entfernen
Johnny
- javascript
Hallo!
Ich möchte den Inhalt, der in ein textarea eingegeben wurde, weiterverarbeiten. Das funktioniert auch gut, nur wenn bei der Eingabe Enter gedrückt und so ein Zeilenumbruch eingefügt wurde, dann bricht die Weiterverarbeitung an dieser Stelle ab. :(
Deshalb möchte ich entweder das Drücken der Enter-Taste bei der Eingabe komplett verhindern (wäre suboptimal) oder besser aus der Eingabe nachträglich die Zeilenumbrüche herausfiltern, bevor die Daten verschickt und weiterverarbeitet werden.
Hat da jemand eine Idee, wie ich das anstellen kann?
JOhnnY
also der ASCII code von "Enter" ist so viel ich weis 13 wenn das in dem String auch so ist müsste man nur alle zeichen mit dem acsiicode 13 löschen...
ich weis allerdings nicht ob das stimmt.
ThomasZ
aus der Eingabe nachträglich die Zeilenumbrüche herausfiltern,
http://selfhtml.teamone.de/javascript/objekte/string.htm#replace
http://selfhtml.teamone.de/javascript/objekte/regexp.htm
aus der Eingabe nachträglich die Zeilenumbrüche herausfiltern,
http://selfhtml.teamone.de/javascript/objekte/string.htm#replace
http://selfhtml.teamone.de/javascript/objekte/regexp.htm
--- ja, danke...
Ich habe die Seiten gelesen und folgendes gemacht:
function kontakt(string){
var vormals = (string);
var word = vormals.replace(/\n/," ");
So sollten dann die Zeilenumbruchszeichen gegen Leerzeichen ersetzt werden. Doch funktioniert das so nicht. Wo ist mein Denkfehler?
Wenn ich die .exec-function anwende, dann müßte ich ja immer bis zum nächsten Zeilenumbruch suchen (ohne zu wissen, wieviele da sind) und dann die Argumente nachher wieder zusammenfügen, und maximal kann Javascript sich 9 Positionen merken. Ist das die einzige Möglichkeit, bzw. warum funktioniert das da oben nicht??
Danke!
JOhnnY
Hallo,
ich steh vor einem Rätsel! Wenn ich folgende Funktion anwende:
var word = (string);
word=word.replace(/\n/g,"hier");
dann wird aus
der test
des forms
geht los
folgendes:
der test
hierdes forms
hiergeht los
Das bedeutet: Es werden zwar alle Zeilenumbrüche gefunden und auch ersetzt, nur bleiben sie trotzdem weiter bestehen! Das gewünschte Ergebnis wäre dieses hier:
der testhierdes formshiergeht los
Selbst wenn ich über RegExp mein Textfeld in kleine Teile schneide und diese dann wieder zusammenfüge, bleibt der Zeilenumbruch wie er ist. Wie werd ich den nur los???
Kann mir da jemand auf die Sprünge helfen?
Danke!
JOhnnY
ich steh vor einem Rätsel! Wenn ich folgende Funktion anwende:
var word = (string);
Was soll denn das bewirken?
word=word.replace(/\n/g,"hier");
dann wird aus
der test
des forms
geht los
folgendes:
der test
hierdes forms
hiergeht los
Das bedeutet: Es werden zwar alle Zeilenumbrüche gefunden und auch ersetzt, nur bleiben sie trotzdem weiter bestehen!
Du verwendest sicherlich Windows. Zeilenumbrüche unter Windows bestehen aus _zwei_ Zeichen: dem Wagenrücklauf \r gefolgt von einem Zeilenvorschub \n (Mac: nur \r, Unix: nur \n). Dementsprechend mußt Du auch beide Zeichen ersetzen:
word=word.replace(/[\n\r]{1,2}/g,"hier");
Der Bereich der eckigen Klammern stellt ein Zeichen dar (nur eines!), das aus der Gruppe der in den Klammern aufgeführten Zeichen bestehen darf ("Zeichenklasse"). Hier darf also entweder ein \n oder ein \r stehen.
Die geschweifte Klammer dahinter mit dem 1,2 drin besagt, daß das vorige Objekt (also unsere Zeichenklasse) ein- oder zweimal vorkommen darf.
Damit hast Du dann alle Möglichkeiten abgedeckt: \n, \r, \r\n und, Irrtümer sollen ja vorkommen, auch \n\r.
Gruß,
soenk.e
Hallo Sönke,
var word = (string);
Was soll denn das bewirken?
--- das ist noch aus der Formel, wo der Wert übergeben wird, ist hier natürlich nicht entscheidend... (außerdem spricht hier der Dilletantismus des Autodidakten... ;-)
word=word.replace(/[\n\r]{1,2}/g,"hier");
--- jau, das isses! Der Tag ist gerettet... <grins>
Muchas Gracias!
JOhnnY