我网站的大多数用户都不熟悉如何正确使用高级搜索运算符。以下只是我在数据库中看到的一个示例:
薰衣草+烧伤+
而不是使用 +lavender +burns
我正在尝试触发错误消息,以便他们可以正确学习如何进行高级搜索。当他们尝试在单个单词而不是短语周围使用引号时,我已经出现了一个错误。现在我试图提出一个错误,当他们没有正确使用 + 时会显示该错误。我的代码可以检测是否有加号,但我只需要一些帮助来判断 + 出现在单词的前面还是后面。
我网站的大多数用户都不熟悉如何正确使用高级搜索运算符。以下只是我在数据库中看到的一个示例:
薰衣草+烧伤+
而不是使用 +lavender +burns
我正在尝试触发错误消息,以便他们可以正确学习如何进行高级搜索。当他们尝试在单个单词而不是短语周围使用引号时,我已经出现了一个错误。现在我试图提出一个错误,当他们没有正确使用 + 时会显示该错误。我的代码可以检测是否有加号,但我只需要一些帮助来判断 + 出现在单词的前面还是后面。
这些方面应该做的事情:
if (preg_match('/\w\+/', $string)) {
// a plus was found following a word
}
看看你上面的例子,你会感兴趣的正则表达式运算^
符$
。它们匹配行的开头和结尾。例如,^+[a-zA-z]*
将匹配您想要的内容并[a-zA-Z]*+$
匹配您的用户输入的内容。
您可能可以编写一个很好的正则表达式来执行此操作,但您可能想尝试类似这样的简单操作。
$queryArray = explode(' ', $rawQuery);
if (count($queryArray)) {
if ('+' === $queryArray[0][0]) {
// + is in front of first word in query
}
$lastWordInQuery = $queryArray[count($queryArray) - 1];
if ('+' === $lastWordInQuery[strlen($lastWordInQuery) - 1]) {
// + is at the end of last word in query
}
}