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


preg_match validating two words in a string

问题:

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

PHP代码:

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

当前状态:

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

尝试

   if (str_word_count($str)<3){
   // message
  }
if (!preg_match('#^'w+'s'w+#', $_POST['freetext']))
{
    $error_array[] = 'missingwords';
}

两个问题:

  1. 您需要图案的分隔符。我补充道#
  2. 我删除了$标记,因为你至少需要2个单词。如果有$标记,那么只有正好包含2个单词的字符串才能通过

PCRE regexen需要分隔:

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

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