2016-03-28 9 views
1

私はこれだけのように、数字とコロンが含まれている必要があり<input><form>き含む文字列:私はユーザーが投稿したフィールドを検証するとき、私はこの入力があることを確認する検証番号とコロン

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

たいが有効です。たとえば、数字だけだった場合は、is_numberic()のチェックを行います。

この文字列を検証するにはどうすればよいですか?

明確化:

$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'; 

移動する方法regex文のですか?

+3

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

+1

@AvinashRajは、あなたがするpreg_matchを行うだろう( )これについて?あなたのアプローチを概説する回答を投稿し、それがなぜ適切なものなのかを記してください。ありがとう。 –

答えて

4

フィールドの検証には以下の正規表現を使用してください。

var $m = preg_match('~^\d+(?::\d+)+$~', $str); 
  • ^ - ラインの開始。

  • \d+ - 1つ以上の数字の文字に一致します。

  • :\d+ - コロンと1つ以上の数字。

  • (?::\d+)+繰り返し^^ 1回以上。

  • $行末。

編集:(?:: \ D +)

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

優秀、ちょうど1つの最後の質問。 $ str = '5'の検証はうまくいきません。 - あなたはこのシナリオを許すことができますか? –

+0

この '$ string = '19320'を見ました。 // fail'を返します。数字のみの文字列を検証する場合は '^ [\ d:] + $'が5inになります。 –

+0

はい、これは私の間違いでした。私は質問を更新し、その行を削除しました。私は$ string = '19320'が必要です。合格する。 –