preg_match验证字符串中的两个单词

时间:2013-05-27 07:19:17

标签: php string validation preg-match

问题:

尝试在提交前验证表单字段至少有两个单词。

PHP-代码:

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

当前状态:

即使我输入两个带有空格的单词,也会打印错误。这可能有什么问题?

3 个答案:

答案 0 :(得分:2)

尝试

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

  }

答案 1 :(得分:1)

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

两个问题:

  1. 你需要这个模式的分隔符。我添加了#
  2. 我删除了$ mark,因为你想要至少2个单词。如果那里有$ mark,那么只有2个单词的字符串才能通过!

答案 2 :(得分:0)

PCRE regexen需要delimited

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

你需要打开错误报告,它会告诉你它。