RSS Feed  •  Profil  •  Private Nachrichten  •  Registrieren  •  Login 
  
 
im Forum


 FAQ   KarteKarte   Mitgliederliste   Benutzergruppen   Teamseite   Suchen 

Regulärer Ausdruck

 
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
thoha
Übersetzer
Übersetzer

Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 23.05.2009, 19:35    Titel: Regulärer Ausdruck

Hallo zusammen!

Ich habe so meine liebe Mühe mit den regulären Ausdrücken.
Folgender Codeschnippsel:
PHP-Code:
1
<?php $muster_datum "/^[0-9-]/"


Ich möchte in einem Eingabefeld nur Zahlen und Bindestriche zulassen.
Das prüfe ich nachher mit preg_match()

Zum Testen habe ich anstatt Bindestriche mal Schrägstriche eingegeben.
Trotzdem hat das Formular die Schrägstriche ohne Meckern geschluckt.

Was ist an diesem Ausdruck falsch?


Vielen Dank
Thomas
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
NoMoKeTo
Ehemaliger
Ehemaliger

Anmeldedatum: 13.07.2006
Geschlecht: Männlich
Beiträge: 1019
Wohnort: NRW

BeitragVerfasst am: 23.05.2009, 19:51    Titel:

Es fehlt ein $ am ende

PHP-Code:
1
<?php $muster_datum "/^[0-9-]$/"

_________________
Ich spreche Esperanto und lerne auf diesem Weg tolle Leute kennen - weltweit!
Nach oben
Benutzer-Profile anzeigen NoMoKeTo ist derzeit offline Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer

Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 23.05.2009, 20:16    Titel:

Hallo NoMoKeTo

danke für deine Antwort.

Folgendes Problem: mit diesem Code, den du gepostet hast, funktioniert auch das mit den Bindestrichen nicht mehr.
Bindestriche sollen aber zugelassen sein (und natürlich Zahlen).
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
NoMoKeTo
Ehemaliger
Ehemaliger

Anmeldedatum: 13.07.2006
Geschlecht: Männlich
Beiträge: 1019
Wohnort: NRW

BeitragVerfasst am: 23.05.2009, 20:33    Titel:

Das ist merkwürdig. Der Code soltle einwandfrei funktionieren.

Poste doch mald en restlichen Code, vielleicht hat sich darin ein Fehler versteckt. Wink
_________________
Ich spreche Esperanto und lerne auf diesem Weg tolle Leute kennen - weltweit!
Nach oben
Benutzer-Profile anzeigen NoMoKeTo ist derzeit offline Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer

Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 23.05.2009, 20:49    Titel:

also... das sind zwei ellenlange dateien.
Die insertvalidator.php wird in die programm_neu.php includiert.

programm_neu.php
insertvalidator.php

Der reguläre Ausdruck ist am Anfang in der insertvalidator.php

Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt von thoha.
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
NoMoKeTo
Ehemaliger
Ehemaliger

Anmeldedatum: 13.07.2006
Geschlecht: Männlich
Beiträge: 1019
Wohnort: NRW

BeitragVerfasst am: 23.05.2009, 20:51    Titel:

Du kannst es natürlich auch mal hiermit versuchen.

PHP-Code:
1
<?php $muster_datum "/^[0-9\-]$/"


Ist aber nur so ne Idee, bei mir gehts normalerweise auch ohne \.

Gruß
_________________
Ich spreche Esperanto und lerne auf diesem Weg tolle Leute kennen - weltweit!
Nach oben
Benutzer-Profile anzeigen NoMoKeTo ist derzeit offline Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer

Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 23.05.2009, 20:59    Titel:

Das funktioniert leider auch nicht, die Bindestriche werden als falsch erkannt.
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
killerbees19
Administrator & BOFH
Administrator & BOFH

OC-Nickname: KB19

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 27 Jahre
Beiträge: 11680
Wohnort: Wien

BeitragVerfasst am: 24.05.2009, 11:57    Titel:

Der Bindestrich gehört nur maskiert, wenn danach noch Zeichen folgen, da es ansonsten als Bereich angesehen wird. Ihr habt einfach vergessen anzugeben, wie oft das Zeichen vorkommen muss (siehe Plus Zeichen), das ist Pflicht Wink

PHP-Code:
1
2
3
4
5
<?php

$muster_datum 
"/^[0-9-]+$/";

?>


Zum Maskieren des Bindestriches müsste man übrigens zwei Escape Zeichen verwenden, einen für PHP (sonst glaubt PHP - muss maskiert werden und übergibt keinen Slash mehr an die RegEx Funktion) und einen für RegEx (aus \\- wird \-) Smile


MfG Christian
_________________


Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt von killerbees19.
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
NoMoKeTo
Ehemaliger
Ehemaliger

Anmeldedatum: 13.07.2006
Geschlecht: Männlich
Beiträge: 1019
Wohnort: NRW

BeitragVerfasst am: 24.05.2009, 12:11    Titel:

killerbees19 hat Folgendes geschrieben:
Zum Maskieren des Bindestriches müsste man übrigens zwei Escape Zeichen verwenden, einen für PHP (sonst glaubt PHP - muss maskiert werden und übergibt keinen Slash mehr an die RegEx Funktion) und einen für RegEx (aus \\- wird \-) Smile

Sagst du immer. Und bei mir gehts trotzdem fast immer auch mit nur einem \
_________________
Ich spreche Esperanto und lerne auf diesem Weg tolle Leute kennen - weltweit!
Nach oben
Benutzer-Profile anzeigen NoMoKeTo ist derzeit offline Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
killerbees19
Administrator & BOFH
Administrator & BOFH

OC-Nickname: KB19

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 27 Jahre
Beiträge: 11680
Wohnort: Wien

BeitragVerfasst am: 24.05.2009, 13:35    Titel:

Das hängt dann aber glaube ich mit den einfachen und doppelten Anführungszeichen zusammen, denn beim Escapen gibt es da scheinbar Unterschiede, die aber teilweise tolleriert werden*. Welche Anführungszeichen verwendest du denn sonst immer für RegEx-Strings?


MfG Christian
---
* Bei manchen wird das Escape Zeichen beibehalten, wenn das Folgezeichen im aktuellen Kontext nicht maskiert werden müsste (ein Bindestrich z.B. im Gegensatz zu einem Anführungszeichen).
Genauer habe ich das jetzt noch nie ausgetestet, da es mit zwei Escape Zeichen immer funktioniert, also was solls Laughing
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer

Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 24.05.2009, 17:12    Titel:

Hi zusammen!

Herzlichen Dank Euch beiden, es funktioniert einwandfrei!


Eine ganz schöne Woche wünsch' ich euch!
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
thoha
Übersetzer
Übersetzer

Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 29.06.2009, 22:52    Titel:

Habe schon wieder ein Problem mit diesen regulären Ausdrücken.

Wenn der reguläre Ausdruck für "Akzeptiere nur Zahlen und Bindestriche" so lautet:
PHP-Code:
1
<?php $muster_datum "/^[0-9-]+$/"


dann dachte ich mir, dass der Ausdruck für "Akzeptiere nur Zahlen und Pipe-Zeichen" so lauten müsste:
PHP-Code:
1
<?php $muster_subjekte "/^[0-9|]+$/"


Nun akzeptiert das Script aber auch ganz normale Wörter, ohne zu meckern.

Was stimmt an diesem reg. Ausdruck nicht?


Liebe Grüsse,
Thomas
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
killerbees19
Administrator & BOFH
Administrator & BOFH

OC-Nickname: KB19

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 27 Jahre
Beiträge: 11680
Wohnort: Wien

BeitragVerfasst am: 30.06.2009, 00:08    Titel:

An dem regulären Ausdruck stimmt alles, du hast einfach den Rest irgendwo falsch programmiert oder dich vertippt, denn dieses kurze Testscript funktioniert bei mir, wie es soll:

PHP-Code:
1
2
3
4
5
6
<?php

var_dump
(preg_match("/^[0-9|]+$/"'test'));
var_dump(preg_match("/^[0-9|]+$/"'1578353|56785'));

?>



MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht teilnehmen.
Du kannst postings in diesem Forum beanstanden.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum herunterladen.

 

Alle Zeiten sind GMT + 2 Stunden (Sommerzeit)
Aktuelles Datum und Uhrzeit: 21.10.2018, 21:18
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!
Software based on work from the phpBB-Group  •  Deutsche Übersetzung von phpBB.de

netcup - Internetdienstleistungen
 
 
[ happytec.at | forum.happytec.at | blog.happytec.at | esports.happytec.at | event.happytec.at ]