Rausparsen von Zeichen ausser Ziffern

wal

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem:

In einem Feld werden Telefonnumern gespeichert, nun gibt jeder Benutzer seine Telefonnummer ein, mal mit + vorne oder zwei 00 oder zwischen Vorwahl mit und ohne / etc.. Dies macht dann eine Suche nach Telefonnumern doch etwas schwierig und es gibt dabei dann auch "Keine Treffer", da eventuell ein anderes Zeichen dazwischen steht. Also es gibt diverse Möglichkeiten Telefonnummern einzugeben :mad:

Nun suche ich einen Befehl, der mir aus dem Eingabefeld alle Zeichen ausser den Ziffern rausparst - gibt es soetwas überhaupt?:confused:

Das einzige was mir dazu einfällt wäre, jedes Zeichen zu untersuchen und dann mit "" zu ersetzen. Gibt es noch andere Alternativen?

Jeder Tipp und Hilfe ist willkommen :)

Vielen Danks chon mal vorab...
 
Das kannst Du mit Regular Expressions machen. Ein kleines Tutorial findest Du zum Beispiel unter PHP und Regular Expressions.

Ich hab Dir hier ein Beispiel für das "Bereinigen" gemacht:

PHP:
<?
$tel1 = "+31 -60-13779200"; //Beispeil für eine Telefonnummer
$tel1 = ereg_replace("^[+]", '00', $tel1); //ersetzt ein '+' am Anfang des Strings durch zwei Nullen
$tel1 = ereg_replace("[[:space:]]+", '', $tel1); //alle Leerzeichen werden gelöscht
$tel1 = ereg_replace("[/-]+", '', $tel1); //alle '/' und '-' werden gelöscht
echo($tel1."<br>");
?>

Fürs Verständnis:

ereg_replace sucht nach dem Ausdruck im ersten Parameter und ersetzt den gegebenenfalls durch den zweiten Parameter und das alles im String des dritten Parameters. Die eckigen Klammern begrenzen einfach nur das, wonach gesucht werden soll. Wenn Du noch mehr als '/' und '-' herausfiltern willst, dann musst Du das entsprechende Zeichen einfach dazuschreiben.

^ - am Anfang des Strings
[:space:] - Leerzeichen
+ - kommt mindestens einmal vor

Nimm Dir gegebenenfalls mal Zeit für das Tutorial, ich habs damit relativ schnell verstanden.
 
Hi jenno,

super, vielen Dank für die Antwort - funktioniert prima :p

Auch danke für den Link - der ist echt was für die Favoriten! ;)
 
Hallo zusammen

habe diesen Thread gelesen.

Frage:

wie lösche ich jetzt alle alphanummerische Zeichen raus?

Würde das so aussehen

PHP:
$tell = ereg_replace("^[a-zA-Z]", '', $tell); //alle Buchstaben werden gelöscht

Besten Dank für den Feedback
 
Wenn ich jetzt net völlig bescheuert bin löscht du damit aus jeder Zeile das erste Zeichen...
^ steht für das erste Zeichen!

Btw.. hier gibts unter den Tutorials auch eine schöne Referenz über Regular Expressions..

MfG Dominik ;)
 
Zurück