2016-08-03 11 views
0

Ich brauche eine Regex für Number, Space und Sonderzeichen. Hier sind meine Beispiele:Ich brauche eine Regex für Zahl, Leerzeichen und Sonderzeichen

+44 161 999 8888

011 44 (161) 999 8888

1-408-999 8888

+1 (408) 999 8888

222 8888

1-212-222 8888

+1 (212) 222 8888

+1 212 999 8888

001 (212) 999 8888

0161 999 8888

+44 (161) 999 8888

2222 8888

01-2222 8888

+44 1-2222 8888

+91-80-26584050

26584050

+0

Ich brauche Fax Nummern Regex, aber insgesamt Nation – Wenson

+0

Dies ist eine große Anzahl von Mustern zu entsprechen. Hast du schon etwas probiert? –

+0

Ja versuche ich letzte Stunde. Ich bin kein Experte von Regex – Wenson

Antwort

1

Try this:

^[0-9()\+\-]+$ 

Die [] bedeutet, die Elemente in diesem Satz.

Das + am Ende bedeutet eines oder mehrere von ihnen.

Die 0-9 bedeutet Zahlen in diesem Bereich.

Das Leerzeichen bedeutet ein Leerzeichen.

Das (und) bedeuten die Klammern Zeichen

Die + und - das Plus bedeuten und Minus-Zeichen.

Die^am Anfang und $ am Ende sagen, das ist die komplette Aussage von Anfang bis Ende, mit nichts anderem dazwischen.

Ich denke, dass deckt Ihren kompletten Satz

+1

Danke, aber ich brauche keine Buchstaben (a-z oder A-Z). – Wenson

+1

Erm, nichts in meinem regulären Ausdruck gibt Buchstaben ... – LordWilmore

+1

Aber Alpha-Buchstaben akzeptiert Ihre Regex – Wenson

1

zum Beispiel in php:

<?php 
$input = "+44 161 999 8888"; 

//$input = "011 44 (161) 999 8888"; 

//$input = "1-408-999 8888"; 

//$input = "+1 (408) 999 8888"; 

//$input = "222 8888"; 

//$input = "0161 999 8888"; 

//$input = "01-2222 8888"; 

//$input = "+44 1-2222 8888"; 

//$input = "+91-80-26584050"; 

//$input = "26584050"; 


preg_match("/(^\+[0-9]+\ [0-9]+\ [0-9]+\ [0-9]+$|^[0-9]+\ [0-9]+\ \([0-9]+\)\ [0-9]+\ [0-9]+$|^[0-9]+\-[0-9]+\-[0-9]+\ [0-9]+$|^\+?[0-9]+\ \([0-9]+\)\ [0-9]+\ [0-9]+$|^[0-9]+\ [0-9]+$|^[0-9]+\ [0-9]+\ [0-9]+$|^[0-9]+\-[0-9]+\ [0-9]+$|^[0-9]+\ [0-9]+\-[0-9]+\ [0-9]+$|^\+[0-9]+\-[0-9]+\-[0-9]+$|^\+[0-9]+\ [0-9]+\-[0-9]+\ [0-9]+$|^[0-9]+$)/", $input, $m); 

echo $input; 
print_r($m); 

regex getrennt:

/(
^\+[0-9]+\ [0-9]+\ [0-9]+\ [0-9]+$| 
^[0-9]+\ [0-9]+\ \([0-9]+\)\ [0-9]+\ [0-9]+$| 
^[0-9]+\-[0-9]+\-[0-9]+\ [0-9]+$| 
^\+?[0-9]+\ \([0-9]+\)\ [0-9]+\ [0-9]+$| 
^[0-9]+\ [0-9]+$|^[0-9]+\ [0-9]+\ [0-9]+$| 
^[0-9]+\-[0-9]+\ [0-9]+$|^[0-9]+\ [0-9]+\-[0-9]+\ [0-9]+$| 
^\+[0-9]+\-[0-9]+\-[0-9]+$| 
^\+[0-9]+\ [0-9]+\-[0-9]+\ [0-9]+$| 
^[0-9]+$)/ 

, wenn Sie bestimmte lengh der Zahl, zu ändern "+" müssen für {Zahl} zum Beispiel Länge von 4 Zeichen {4}

[0-9]{4} 
+1

Danke @Zital – Wenson

Verwandte Themen