ich habe eine -so dachte ich- "simple" Regex um die Eingabe eine Kreditkartennummer zu "bereinigen" (Leerzeichen, Bindestriche, usw.) erstellt.
Mit RegExp-Coach von Dr. E. Weitz und mit VisualRegExp 3.1 klappt das auch wunderbar. PHP lässt sich aber nicht davon beeindrucken
Ich bin Neuling in der Materie, ergo stehe ich etwas dumm da momentan.
Der code:
- Code: Select all
//Space, Bindestriche und andere Zeichen aus der CC-Nr. entfernen
$cc_pattern="/^([0-9]{4,4})([^0-9])*([0-9]{4,4})([^0-9]|\s)*([0-9]{4,4})([^0-9]|\s)*([0-9]{1,4})$/";
$cc_string=$_POST['pmkreditkarte_cardnumber'];
$cc_replace="$1$3$5$7";
preg_replace($cc_pattern, $cc_replace, $cc_string);
Bei Eingabe von 1234-5678-9012-3456 (Bindestrich durch beliebige nicht-numerischen Zeichen ersetzbar), erwarte ich 1234567890123456 als ergebnis, was o.g. Programme auch liefern.
Was mache ich falsch?
Ach! Testumgebung XAMPP für Windows (letzter Release).
Danke.