-
Hello World
-
Hello World
-
hello world
或者如果开头有空格 -
Hello World
如果$q
有正常值,但我从搜索输入获得$q
值所以除了情况1,它不起作用
$q = Input::get('q');
if(preg_match("/^s+/", $q) || preg_match("/s{2,}/", $q)) {
echo 'Found Spaces';
}
用$q = $_GET['q'];
代替Input::get('q');
所以你的代码变成:
$q = $_GET['q'];
if(preg_match("/^s+/", $q) || preg_match("/s{2,}/", $q)) {
echo 'Found Spaces';
}
if(preg_match("/^s+/", $q) || preg_match("/s{2,}/", $q))
{
}
/s+/g
-
s
匹配空格 -
+
说至少一个。 -
g
全局标记,所有匹配。
您可以使用一个调用preg_match和一个备选|
来检查这两个场景。
由于s
也可以匹配换行符,您可以使用h
来匹配水平空白字符。
^h|hh
Regex演示
$q = Input::get('q');
if(preg_match("/^h|hh/", $q) ) {
echo 'Found Spaces';
}
您是否尝试过使用PHP trim()
函数?使用trim()来删除多余的空白,然后应用更高级的过滤器或您所称的任何东西。如果您想要一个布尔值,只需检查原始字符串是否与修剪字符串不同。文档:https://www.php.net/manual/en/function.trim.php