2012-04-07 17 views
0

私はPHPで検証するための以下のコードブロックを持っていますが、なぜ私の検証がまだ失敗しているのか分かりません。私は正規表現の初心者ですが、($、。 - )を許可したいのですが、それは機能しません。私は "[A-Za-z0-9]"から始めました。下のコードで許可される唯一の文字はダッシュ( - )ですが、$またははありません。または、またはスペース。誰かが私を正しい方向に向けることができますか?PHP正規表現の検証

case 'alnum': 
{ 
     $bret= $this->test_datatype($input_value,"[A-Za-z0-9\s$,.-]"); 
     if(false == $bret) { 
      $default_error_message = sprintf(E_VAL_ALNUM_CHECK_FAILED,$variable_name); 
     } 
    break; 
          } 
+0

あなたはすぐそこ 'preg_match'を使用して傍受方法でそれを難読化してはいけません。 (その内的な働きは未知であり、これはこれを難しくする)。 'false =='の比較も非常に冗長です。 – mario

答えて

1

あなたが働いていない文字の前にバックスラッシュを使用することができ、すなわち$など

$bret= $this->test_datatype($input_value,"[A-Za-z0-9\s\$\,\.-]"); 
+0

うまくいった。ありがとう! –

+0

それは素晴らしいです:) – sarwar026