Seite 1 von 2

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 06.08.2012, 14:41
von Elli
Hallo zusammen,

Ich möchte ein Textfeld so formatieren, dass Sonderzeichen nicht erlaubt sind. Hintergrund: der Inhalt des Feldes wird in eine Datenbank geschrieben, die nicht mit allen Sonderzeichen zurecht kommt. Deshalb möchte ich diese Bereits bei der Eingabe oder der Validierung verbieten.

Gibt es da eine Möglichkeit?

Vielen Dank und Gruß

Elli

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 06.08.2012, 18:26
von radzmar
Hi,

das kann man mit regulären Ausdrücken ganz gezielt steuern.
Um nur Buchstaben, Zahlen und Leerzeichen zu erlauben, kann man dieses Skript im change Event des Feldes einsetzen.

Code: Alles auswählen

if (!xfa.event.change.match(/[a-zA-Z0-9\s]/g)) {
	xfa.event.change = "";
}

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 07.08.2012, 07:55
von Elli
Guten Morgen radzmar,
super, vielen Dank für Deinen Tipp. Leider sind jetzt alle Sonderzeichen erlaubt, aber nicht a-z, A-Z und 0-9. Aber dann "zäumen" wir das "Pferd" von hinten auf und verbieten so viele Sonderzeichen wie möglich.
Danke und Gruß
Anja

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 07.08.2012, 08:05
von Elli
Gefunden!!!

Code: Alles auswählen

if (!xfa.event.change.match(/[^a-zA-Z0-9\s]/g)) {
xfa.event.change = "";
}
mit einem ^davor geht es. Hab vielen Dank!
Elli

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 07.08.2012, 08:21
von radzmar
Schön dass das bei dir klappt, verstehen tue ich das aber nicht.
Das ^ negiert doch die Gruppierung, wie schon das ! ganz am Anfang.
Mein Beispiel prüft, ob die aktuelle Eingabe nicht zu der Zeichengruppierung passt.
Falls dem so ist, wird die Eingabe durch "" ersetzt.
^ und ! zusammen in einer Prüfung heben sich ja gegenseitig auf, demnach würde ...

Code: Alles auswählen

if (!xfa.event.change.match(/[^a-zA-Z0-9\s]/g)) {
xfa.event.change = "";
}
... genauso a-zA-Z0-9\s verbieten wie ...

Code: Alles auswählen

if (xfa.event.change.match(/[a-zA-Z0-9\s]/g)) {
xfa.event.change = "";
}

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 09.08.2012, 07:34
von Elli
Guten Morgen radzmar,
natürlich hattest Du recht!!! Wer kopieren kann, ist klar im Vorteil. Ich hatte das "!" vergessen. Jetzt funktioniert alles richtig gut.
Dankeschön
Elli

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 09.08.2012, 09:50
von Elli
Hallo radzmar,

es funktioniert schon ziemlich klasse. Kannst Du mir aber vielleicht noch einen Tipp geben, wie ich die Backspace-Taste (glaube sie heißt so: löschen von links nach rechts) und die Entf-Taste noch zulassen kann? Was ich gefunden habe, war \b, aber irgendwie funktioniert es nicht

Danke und viele Grüße

Elli

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 09.08.2012, 13:38
von radzmar
\b steht für Word Boundary, also Wortgrenze.
Als Backspace wird es nur erkannt, wenn es in eckige Klammern gestellt wird, also [\b].
Ich weiß aber nicht, ob das in PDF's funktioniert, den die Fähigkeiten von Acrobat's JavaScript sind in manchen Dingen eingeschränkt, wenn es um reguläre Ausdrücke geht.

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 09.08.2012, 14:44
von Elli
Du bist ein Schatz - danke für Deine Antwort. Mit etwas Probieren habe ich es hinbekommen:

Code: Alles auswählen

if (!xfa.event.change.match(/[a-zA-Z0-9s]/g\b))
Ging auch ohne [ ]

Viele Grüße

Elli

Textfelder so formatieren, dass Sonderzeichen nicht erlaubt sind

Verfasst: 16.08.2012, 21:24
von Merklin
Hallo Elli,

bei welchen Event, hast du das Script eingefügt?

Bekomme immer eine Fehlermeldung.


VG Merklin