php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2007, 13:57  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard regex - pregmatch - string prüfen

Hallo ihr,

ich hätte gedacht, dass es so langsam was wird mit der RegEx Geschichte,
aber irgendwie bekomme ich das nicht so richtig hin.

Ich habe in einer Textarea einen ganz normalten Fließtext.
Dieser wird beim Speichern escaped und auch strip_tags lasse ich
noch einmal drüber laufen. Nun würde ich aber gerne schon beim
Speichern checken was da alles so drinsteht und nicht einfach alles
killen was mir nicht gefällt. Zulassen möchte ich im String jeweils
nur a-z0-9 alle Umlaute und ß weils beim schreiben von Text eben
vorkommt, zusätzlich Slash, Komma, Punkt und - sowie Lehrzeichen und
diese Klammern ().

Wie macht man das nun am besten? Ich bin mit pregmatch drauf losgegangen, aber irgenwie mag das gar nicht laufen. Zumindest
wird mir immer erzählt, dass der String fehlerhaft ist.
Code:
!preg_match('#^[ a-z0-9äöüß/(),.-]+$#i', $var)
Was muss man da denn Schönes schreiben?
tinchen ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.03.2007, 14:17  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

und so?
#^[ a-z0-9äöüß\(\),\.\-]+$#i
aber wenn du der ausdruck als einzig wahre eingabe für textarea betrachtest, dann wirst du doch alles killen.
schon ein "!" im text und regex stimmt nicht mehr
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 25.03.2007, 14:25  
CIX88
Gast
 
Beiträge: n/a
Standard

Bei den Umlauten gibt es noch einen Hacken, auch bei Modifer i empfehle ich die Umlaute auch zusätzlich in Großbuchstaben anzugeben.
Oft werden diese nicht wirklich erkannt, auch nicht wenn Modifer i gesetzt ist.
 
Alt 25.03.2007, 14:30  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Hallo Slava,

funktioniert leider auch nicht. Da fehlt zwar noch / aber, das ist im
erstem Feld gar nicht drin, obwohl es da schon anschlägt. Vielleicht habe
ich da auch irgendwo einen Denkfehler?

Nun, das sind keine Texte im eigentlichen Sinne.
Es ist möglich in der Administration eigene Fehlertexte für Eingabefehler im
Formular zu erstellen. Auf Zeichen wie ! stehe ich da persönlich gar nicht.
Das sind nur ganz kurze Texte, die nicht das volle "Textpotential" brauchen.
Gibt es da mit dem "/" was zu beachten als Eingabemöglichkeit?
tinchen ist offline  
Alt 25.03.2007, 14:45  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

sorry ich kann dir kein Tipp geben, da Regex eine sehr preziese Sache ist und braucht auch eine preziese Beschreibung.
Am bestens gehst du auf die seite von @CIX88 (@CIX88 ich habe dich verraten)
http://www.regex-tester.de/
und übst dich bis zum umfallen.
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 25.03.2007, 15:07  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Hab nun ein \s mit reingeschrieben und nun läuft es durch. Manchmal sieht man
den Wald vor lauten Bäumen nicht. Eine kleine Frage hätte ich allerdings noch.
Wenn man in einer Textarea zum Beispiel so etwas macht:

Weitere Benachrichtigungen senden an:
mail@domain.de
mail@domain2.de

Dann braucht man die Eingabe nicht mit explode zelegen sondern kann gleich mit
dem Mehrzeilenmodus durchsuchen. Kann man davon ausgehen, dass da auch
wirklich immer ein \n ist und es in jedem Fall zeilenweise durchsucht wird oder
ist das durchaus anfällig. [Browser, Betriebssystem, etc?]
tinchen ist offline  
Alt 25.03.2007, 15:20  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

\s = \t oder \r oder \n oder " "
und in textarea wird ein zeilen-umbruch OS abhängig gesetzt.
schau dir auch wrap-Attribut.
Als Werte sind hier virtual (automatisch umgebrochen aber beim Absenden werden diese Umbrüche nicht mitgesendet), physical (automatisch umgebrochen und beim Absenden werden diese Umbrüche mitgesendet) und off (kein Umbruch - Zeile wird verlängert) möglich.
garantie bietet dieser atribut aber nicht.
alles was von aussen kommt muss man als Angriff versuch betrachten.
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 25.03.2007, 21:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

falls du nur simple mails wie die da auswertest kannst du ja ruhig \s verwenden, denn das sollte dann nicht darin vorkommen, weder umbruch noch leerzeichen oder tab. brauchst du einen komplexeren mail-regexpr. schick mir ne pn, hab das zufällig auch gerade heute durchexzerziert (rfcs lesen den halben tag, was für ein spaß)...
nikosch ist offline  
Alt 24.12.2009, 18:29  
Neuer Benutzer
 
Registriert seit: 19.12.2009
Beiträge: 18
PHP-Kenntnisse:
Anfänger
fripon77 befindet sich auf einem aufstrebenden Ast
Standard

sorry, muss das nochma hochholen, weil ich es auch gern verstehen würde...

will zahlen zulassen, also:
100
100,12
1.000.000,13

habe aus einem anderen thread diese bedingung gefunden, die meine vorgabe fast erfüllt:

#^[0-9]+(?>,[0-9]{2})?$#is

1.000,45 --> erfüllt bedingung nicht.

wie müsste ich es dann schreiben??

noch was: ich würde gerne jedes einzelne zeichen der bedingung (#^[0-9]+(?>,[0-9]{2})?$#is) kapieren, kann ich das wo nachlesen? PHP: preg_match - Manual hat MIR nicht weitergeholfen
fripon77 ist offline  
Alt 24.12.2009, 20:54  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Tutorial für Regex:

-> Quakenet/#php Tutorial - de - Reguläre Ausdrücke
robo47 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Regex: Auslesen der Meta-Tags einer Webseite Sucheingrenzung pepe24 PHP Tipps 2008 12 31.05.2008 15:41
2 Regex in PHP kompatible Syntax übersetzen NoiZy PHP-Fortgeschrittene 6 07.04.2008 09:04
Event abfangen Ambience JavaScript, Ajax und mehr 4 30.08.2007 14:36
Funktion, die String auf Gleichheit mit regex prüft Werkler PHP Tipps 2006 8 02.04.2006 23:39
Problem mit zu langen String -> regex PHP Tipps 2006 1 25.01.2006 17:38
html tags filtern mit regex UND string ergänzen PHP Tipps 2006 14 06.01.2006 02:02
[Erledigt] Regex Problem. PHP Tipps 2007 14 07.11.2005 15:24
[JS] Regex: Zahl aus String auslesen [gelöst] freq.9 HTML, Usability und Barrierefreiheit 3 27.06.2005 12:02
string -> int, nur wenn string zahl ist PHP Tipps 2005-2 3 06.06.2005 12:33
Prüfen, ob String MD5 ist Chr!s PHP Tipps 2005-2 2 04.06.2005 15:41
preg_split erzeugt leeren String || regex Schaelle PHP Tipps 2005 2 27.04.2005 18:35
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29
String auf bestimmte Breite (Pixel) kuerzen... mudo PHP-Fortgeschrittene 25 28.01.2005 19:07
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29
String mit Leerzeichen auffüllen HTML, Usability und Barrierefreiheit 2 27.10.2004 18:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php preg match, preg match umlaute, php string prüfen, preg match, preg replace umlaute, preg match sonderzeichen, pregmatch, javascript preg match, preg replace sonderzeichen, preg match tester, php match string, preg match php, php string auf zahlen prüfen, php pregmatch, string auf zahlen prüfen php, string prüfen, preg match leerzeichen, php string match, php string auf leerzeichen prüfen, string prüfen php

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.