WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

HTML, XHTML, CSS , style, XML, Javascript und mehr, Fragen, Tipps und Anregungen zu diesen Basic Techniken - hier rein !


Forum » HTML, CSS - Hilfe für das Erstellen einer Homepage » Zeilenumbruch bei RegExp » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Zeilenumbruch bei RegExp
von Gon
So, jetzt klappt es. Danke vielmals.


hatte zu erst mit folgenden Versionen probiert
reg = new RegExp('^([a-zA-Z0-9\-_.,@€äöüÄÖÜ!ß?°$n ]+)$');
reg = new RegExp('^([a-zA-Z0-9\-_.,@€äöüÄÖÜ!ß?°$rn ]+)$');
reg = new RegExp('^([a-zA-Z0-9\-_.,@€äöüÄÖÜ!ß?°$\n ]+)$');

Gingen alle nicht.
Aber so hats letzt endlich funktioniert. ^^
reg = new RegExp('^([a-zA-Z0-9\-_.,@€äöüÄÖÜ!ß?°$\r\n ]+)$');


MfG,
Gon
von Gon
ich könnte schwören dass ich genau das schon ausprobiert habe aber so sicher wie du dir bist, werd ich's morgen auf Arbeit nochmal testen.


Thx auf jeden fall,
Gon
von subjective
Ich hatte bereits geschrieben, das dafür \n bzw \r\n genutzt wird.
von Gon
es freut mich, dass ihr euch so rege austauscht aber wie kann ich euer geballtes Wissen in mein Projekt übernehmen?

Bleiben wir erstmal bei der Lösung mit RegExp und der Fragestellung, wie man hier einen Zeilenumbruch zulässt.
Zahlen und Buchstaben kann man einfach so eintragen (0-9a-zA-Z)
"\" kennzeichnet (\?!.:,;-_ )
WIE kennzeichnet man Formatierungszeichen wie BreakLine (bzw das, was Enter bei einer Textarea bewirkt?)
von languitar
oh, kann sein, das is bei mir immer eher so trial and error ;)
von subjective
Mit über hat m nicht zu tun - eher mit pro (Zeile). Der Modifier dehnt ein Pattern nicht aus, sondern schränkt es im Gegenteil ein. Interessant wird das zB beim Ersetzen von Zeilen.

Über mehrere Zeilen wäre am ehesten noch s - da wird dann \n mit in . aufgenommen. Wodurch ein .* auch Zeilenumbrüche erwischt.
von languitar
subjective schrieb am 07.04.2005 10:29
Der Modifier m hat damit nichts zu tun. Er dient dazu daß die Anker ^ und $, nicht nur auf Stringanfang und -ende sondern auch auf Zeilenanfang und -ende zutreffen.


Ich hatte seine Frage auch erst so verstanden, dass er sich wundert, wieso seine Muster nicht über mehrere Zeilen funktionieren.
von subjective
Prüfungen bei Eingaben mußt du immer serverseitig machen (PHP oder ASP, ...) und kannst sie zusätzlich noch in JavaScript machen. Sowohl bei JS, wie auch bei PHP sollte ein Zeilenumbruch durch \n bzw \r\n angegeben werden können.

Der Modifier m hat damit nichts zu tun. Er dient dazu daß die Anker ^ und $, nicht nur auf Stringanfang und -ende sondern auch auf Zeilenanfang und -ende zutreffen.
von Gon
k, stimmt.
Das mit dem deaktivieren is n echter Grund.


Ich geh erstmal davon aus, dass das nicht eintritt und sprech nachher mal meinen Cheff drauf an. Immerhin bin ich hier nur der Azubi der seine Sklavenarbeit so gut es geht zu machen versucht.
Wenn der sagt, das Firmenintern keiner das ausschalten wird (die DB wird nur von etwa 5 Mitarbeitern genutzt, alle anderen können eh nur einsehen und nicht bearbeiten) dann werd ich nicht umstellen.

Ist am Ende des Projektes noch Zeit, werd ichs trotzdem in Angriff nehmen.


Thx auf Jedenfall und ich finds klasse dass hier immer schnell wer ne Antwort parat hat.
(^_^) Gon
von languitar
Naja die Felder wieder zu füllen ist ja wohl nicht so schwer. Wenn du nen Fehler findest lässt du das Formular mit der Fehlermeldung drüber wieder ausgeben und gibst die bisher geposteten Werte wieder in den Values der Inputs aus...

JavaScript hat aber den großen Nachteil, dass jeder der es ausschaltet einfach alles in deine DB reinpacken kann!
von Gon
Weil JavaScript den Vorteil hat, dass fehlerhafte Eingaben schon abgefangen werden können bevor der Nutzer überhaupt den Submit-Button betätigt.
So umgeh ich derzeit zB das Problem, dass alle ausgefüllten Felder wieder leer sind.
Ich bin noch kein Meister im Umgang mit <form>'s, daher weiß ich derzeit keine Möglichkeit mit ASP etwas zu erreichen bevor die Daten wirklich abgeschickt wurden.


Das Javascript ist max. 5 Zeilen lang.
Der ASP Code der aus fehlerhaften Eingaben korrekte formatiert währe wohl ewtas länger.
Mit JavaScript wird dem User sofort gesagt, welchen Fehler er begangen hat und der Text an dem er arbeiten muss ist bereits im Focus und vormarkiert.


aehm, ja, deshalb mache ich es bisher so.
Wenn du eine gute Alternative hat, deren Vorteile den Arbeitsaufwand der Umstellung rechtfertigen würde ich mich wirklich freudig ans tippen machen.
Wenn nicht, bleibe ich wohl erstmal bei diesem WorkAround
von languitar
Warum verarbeitest du die Daten denn nicht mit der Sprache die hinter der Anwendung steht? PHP, ASP oder so? Die hat da doch sicherlich viel mächtigere Werkzeuge als JavaScript und ist nicht vom Browser abhängig.
von Gon
hehe, ich glaub ich schreibe verwirrend, wenn man die Zusammenhänge nicht kennt.
Hier wurde bisher eine Access Datenbank verwendet die wir ersetzen sollen.
In der Original Datenbank hatte man ein Feld in der Eingabemaske um Bemerkungen einzutragen.

Wir wollten, den Nutzern zuliebe die immer meckern, wenn sie sich umgewöhnen müssen eine Oberfläche schaffen, die 1:1 der alten gleicht.
Deshalb haben wir auch eine Textarea, nur leider ergeben sich dadurch genannte Probleme.

Möglichkeit 1)
Herausfinden, wie man einen Zeilenumbruch ins RegExp reinnimmt

Möglichkeit 2)
In der Eingabemaske das Enter "ausschalten" oder ein Textfeld nehmen.

Möglichkeit 3) ?
gibts eine? Bin für Alternativen offen.


Wir arbeiten hier fürs Intranet, also kann man davon ausgehen das ausschließlich der IE in einer recht aktuellen Version verwendet wird.
von languitar
Ich dachte du willst Enter erlauben????

Wenn du es verbieten willst nimm einfach keine Textarea sondern ein Input type="text"
von Gon
1:
reg = new RegExp('^([a-zA-Z0-9\-_.,@€äöüÄÖÜ!ß? ]+)$');

so, siehts besser aus ? ^^

Das kommt halt davon, wenn man im Internet ne Lösung sucht und sie aus Zeitdruck verwendet ohne sie bis ins Detail zu verstehen. Da werden auch die Fehler kopiert.


Ich hab grad eben mit deinem Vorschlag n bissl rumprobiert aber dieses multiline hilft hier leider wenig.
Gäbe es nicht die Möglichkeit, einfach das Drücken von Enter zu unterdrücken mit onKeypress oder so?
von Gon
ich teste es, wenn ich morgen auf arbeit bin. ^^
Jetzt hab ich erstmal 16 ASP und Java-freie Stunden Freizeit (^.^)

Danke trotzdem erstmal.
von languitar
ach ohh, war JavaScript, ka ob das da alles funktioniert...
von languitar
oha, die RegEx sieht ja grauenhaft aus!
Wofür sind den die ganzen doppelten Escape-Zeichen? Eins reicht doch!

\w bzw. \W könnte für dich interessant sein. Das müsste einiges vereinfachen. (http://de.php.net/manual/de/reference.pcre.pattern.syntax.php)

Was die Zeilenumbrüche angeht ist der Modifikator "m" für dich interessant (http://de.php.net/manual/de/reference.pcre.pattern.modifiers.php)
von Gon
hi, ich wiedermal ^^ *winks*


Ich versuche gerade Sonderzeichen zu unterbinden und hab da folgendes was bisher auch wunderbar funktioniert

1: 
2: 
3: 
4:
function cl_Bemerkungen() {
 a = document.neu_bewerber.Bemerkungen;
 reg = new RegExp('^([a-zA-Z0-9\\-\\_\\.\\,\\@\\€\\ä\\ö\\ü\\Ä\\Ö\\Ü\\!\\ß\? ]+)$');
 if(a.value != ""){if(reg.test(a.value) == false){alert('Bitte vermeiden Sie Sonderzeichen! Erlaubt sind a-z A-Z 0-9 . , @ € - _ sowie Leerzeichen und Umlaute.');a.focus();a.select()}


Wenn n Zeichen im Text ist, das ich nicht vorher zugelassen habe, dann meckert das Fenster und der User muss seine Eingabe überdenken.
Leider handelt es sich hierbei um eine Textbox und ich würde gerne Zeilenumbrüche mit einbeziehen. /n funktioniert hier nicht.

Wisst ihr wie ich in meinem Code den Umbruch einer Zeile erlaube oder habt ihr alternative gute Vorschläge, wie man die Eingabe von Sonderzeichen bestimmter Arten unterbinden kann?

Mit bestem Dank schon mal,
Gon


---
'Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise.'
(the Duchess)

Nach oben