2011-08-13 17 views
0
if(!preg_match('^[\+0-9\s\-]+$',$tel_nr)) 
      { 
       die("Invalid number."); 
      } 

数字は、数字、スペース、マイナス記号、プラス記号、その他のものではなく、好ましくは最小5桁および最大12桁であることを望みます。この正規表現が動作しないのはなぜですか?

私が試してみると何も起こりません。つまり、「12345」が失敗します。

助けが必要ですか?

答えて

8
!preg_match('/^[\+0-9\s\-]{5,12}$/',$tel_nr)) 

デリミタを使用するのを忘れました。

+0

大丈夫です。 –

+0

@Camran:ちょうど、更新されたコードを確認してください。 :) – Shef

+0

ありがとう、ありがとう! :)... –

0

あなたは、発現の開始と終了を区切るために/を使用する必要がデリミタ+ {minlenght、maxlenght}

if(!preg_match('~^[\+0-9\s\-]{5,12}$~',$tel_nr)) 
      { 
       die("Invalid number."); 
      } 
0

を加えます。他の文字はオプションであることと、

if (!preg_match('/^[\+0-9\s\-]+$/',$tel_nr)) { 
    die("Invalid number."); 
}  
0

するとあなたは5-12文字を探している合計、または5-12 :次のコードは動作しますか?数字の場合は、次のようなものが必要です。

if (!preg_match('~^(?:[\+\s\-]*[0-9]){5,12}[\+\s\-]*$~', $tel_nr)) 
関連する問題