2016-03-28 13 views
1

ich eine <form> mit einem <input> haben, die nur Zahlen und Doppelpunkt, wie diese enthalten:Validate eine Zeichenfolge Zahlen und Doppelpunkt enthält

$string = '1:9:3:2:0'; 

Wenn ich benutzer eingereicht Felder validieren, ich möchte sicherstellen, dass dieser Eingang gültig. Zum Beispiel, wenn es nur Zahlen wären, würde ich einen is_numberic() Scheck machen.

Wie kann ich diese Zeichenfolge überprüfen?

Klarstellung:

$string = '1:9:3:2:0'; // pass 
$string = '2123:8:1'; // pass 
$string = 'a:9:3:2:0'; // fail 
$string = '1:9:3:2:'; // fail 
$string = '1:9:3:2:0'; 

Ist eine regex Erklärung der Weg zu gehen?

+3

'^ \ d + + $' ............ –

+1

@AvinashRaj Möchten Sie einen preg_match tun () dazu? Bitte posten Sie eine Antwort, die Ihre Herangehensweise beschreibt und warum diese die richtige ist. Vielen Dank. –

Antwort

4

Verwenden Sie den folgenden Regex für die Feldüberprüfung.

var $m = preg_match('~^\d+(?::\d+)+$~', $str); 
  • ^ - Anfang der Zeile.

  • \d+ - passt zu einem oder mehreren Ziffern.

  • :\d+ - Ein Doppelpunkt und eine oder mehrere Ziffern.

  • (?::\d+)+ wiederholt ^^ einmal oder mehrmals.

  • $ Ende der Zeile.

Edit: (? :: \ d +)

var $m = preg_match('~^\d+(?::\d+)*$~', $str); 
+1

Ausgezeichnet, nur eine letzte Frage. Es scheint nicht zu funktionieren validieren $ str = '5'; - Wie können Sie dieses Szenario zulassen? –

+0

Ich sah diese '$ string = '19320'; // fail', wenn Sie einen String validieren wollen, der nur Zahlen enthält, wäre '^ [\ d:] + $' 5in. –

+0

Ja, das war ein Fehler von mir. Ich habe die Frage aktualisiert und diese Zeile entfernt. Ich möchte $ string = '19320'; bestehen. –

Verwandte Themen