-1

問題:

送信前に、フォーム フィールドに少なくとも 2 つの単語があることを検証しようとしています。

PHP コード:

if (!preg_match('^\w+\s\w+$', $_POST['freetext']))
{
    $error_array[] = 'missingwords';
}

現在のステータス:

間にスペースを入れて 2 つの単語を入力しても、エラーが出力されます。ここで何が問題なのですか?

4

3 に答える 3

2

試す

   if (str_word_count($str)<3){
   // message

  }
于 2013-05-27T07:25:48.810 に答える
1
if (!preg_match('#^\w+\s\w+#', $_POST['freetext']))
{
    $error_array[] = 'missingwords';
}

2 つの問題:

  1. パターンには区切り文字が必要です。追加した #
  2. 少なくとも 2 つの単語が必要なので、$ マークを削除しました。$ マークがある場合、正確に 2 つの単語を含む文字列のみがパスされます。
于 2013-05-27T07:23:15.133 に答える
0

PCRE 正規表現は区切る必要があります:

'/^\w+\s\w+$/'

エラー報告を有効にする必要があります。

于 2013-05-27T07:20:59.357 に答える