SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

 
 
Themen-Optionen Ansicht
  #1  
Alt 04.06.2010, 23:03:28
KeinenPlan KeinenPlan ist offline
Anfänger
 
Registriert seit: Jan 2009
Alter: 45
Beiträge: 57
Frage zu einem regulären Ausdruck für Straßennamen(inkl. Hausnummer)!

Durch googlen bin ich auf diesen Ausdruck für die Prüfung von Straßennamen(inkl. Hausnummern) gestoßen:

Zitat:
'^([a-zäöüß\-\.]+\s+)+[0-9]+[a-zäöüß]*((\/|-)[0-9])*$'
Tests haben gezeigt, dass er folgende Strings passieren lässt:

Musterweg 1
Musterweg 1b
Musterweg 1-5
Musterweg 1a-5b
Musterweg 1/3
Musterweg 1 bis 3

Ebenso schluckt er ein ß, zB. in Straße, sowie Vorsätze wie zB. Am, Zur, Zum Auf der, etc.!

Ich bitte an dieser Stelle um Korrektur, falls meine Interpretation des Ausrucks falsch ist; welche ich mit mit Hilfe von wikipedia erarbeitet hab.

'eröffnet den Ausdruck
^ signalisiert den Zeilenanfang

( war nicht expliziert erklärt, aber eröffnet wohl eine Zeichengruppe
[a-zäöüß\-\.] alle Konsonanten und Umlaute(groß oder klein), ß; \-\. gestattet - und .
+ Der voranstehende Ausdruck muss mindestens 1x vorkommen, darf aber auch mehrfach vorkommen
\s steht für ein Leerzeichen(Whitespace)
+ Der voranstehende Ausdruck muss mindestens 1x vorkommen, darf aber auch mehrfach vorkommen
) war nicht expliziert erklärt, aber schließt wohl eine Zeichengruppe
+ Der voranstehende Ausdruck muss mindestens 1x vorkommen, darf aber auch mehrfach vorkommen

[0-9] alle Zahlen von 0-9
+ Der voranstehende Ausdruck muss mindestens 1x vorkommen, darf aber auch mehrfach vorkommen

[a-zäöüß] alle Konsonanten und Umlaute(groß oder klein)
* Der voranstehende Ausdruck darf beliebig oft (auch keinmal) vorkommen

( war nicht expliziert erklärt, aber eröffnet wohl eine Zeichengruppe
( war nicht expliziert erklärt, aber eröffnet wohl eine Zeichengruppe
\/|- gestattet /, | und -
) war nicht expliziert erklärt, aber schließt wohl eine Zeichengruppe
[0-9] alle Zahlen von 0-9
) war nicht expliziert erklärt, aber schließt wohl eine Zeichengruppe
* Der voranstehende Ausdruck darf beliebig oft (auch keinmal) vorkommen

$ kennezeichnet den/das Zeilen-/Stringende
' beendet den Ausdruck


Nun ist mit dem vorhandenen regulären Ausdruck auch leider so eine Eingabe zulässig:

am musterweg 0b

Dies ist natürlich nicht gerade schön von der Optik, aber auch für eine Speicherung in eine DB (wo Kontaktdaten korrekt erfasst sein sollten) ist dies nicht zweckdienlich.

Gut die klein geschriebene Straße wird die Post wohl nicht in Schwierigkeiten bringen, aber von einer Haus Nr. 0 habe ich noch nie was gehört.

Mit meinem Kenntnissstand in Sachen regulären Ausdrücken, der vorher gleich 0 war, hab ich nun versucht die Vorgabe entsprechend anzupassen.

Hier die neue Variante:
Zitat:
'^([A-ZÄÖÜ]{1}[a-zäöüß\-\.]+\s+){1}([a-zäöüß\-\.]+\s+)+([A-ZÄÖÜ]{1}[a-zäöüß\-\.]+\s+)+([A-ZÄÖÜ]{1}[a-zäöüß]+\s+)+[1-9]{1}[0-9]+(\s{1}[a-zß]\s{1}){1,1}((\/|-)[1-9]{1}[0-9])* '
Mein Vorstellung mit dem obigen Konstrukt war es auch folgende Eingaben:
Dr.-von-Kleist-Straße 1 (durchzulassen)
dr.-Von-kleist-straße 0 (zu blocken)

Aber die unkorrekte Schreibweise wird dennoch übernommen!

Ist das, was ich im Sinn habe schlichtweg nicht möglich oder liegts an einem falschen Code?

Zumindest Hausnummern mit führender 0 möchte ich schon eine Weiterverarbeitung verbieten.
Oder muss ich mich diesbzgl. einfach drauf verlassen, dass der User es halt korrekt eingibt?


Wer Ahnung hat möge bitte mal drüber schauen und ggf. verbessern. Thx!
Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
regulärer Ausdruck - Frage nivram PHP für Fortgeschrittene und Experten 1 14.04.2006 23:46:25
Regulären Ausdruck formulieren jan84 PHP Grundlagen 9 13.09.2005 13:48:16
Problem mit einem Regulären Ausdruck Wauzy PHP für Fortgeschrittene und Experten 10 23.03.2004 18:41:07
Regulären Ausdruck öfter auf einen String anwenden Wauzy PHP für Fortgeschrittene und Experten 5 17.02.2004 17:17:00
nach Leerzeicehn in einem Regulären ausdruck suchen #0099FF PHP für Fortgeschrittene und Experten 3 14.12.2003 18:19:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:59:39 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt