【发布时间】:2023-04-01 13:40:01
【问题描述】:
我正在尝试验证一个域是否有带有 preg_match 和一个 REGEX 的 GET 参数,我要求它具有我的目的。
我的工作是验证没有 GET 参数的域,如下所示:
if (preg_match("/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}$/", 'domain.com')) {
echo 'true';
} else {
echo 'false';
}
我对这个测试是正确的。
到目前为止一切顺利。我遇到的问题是添加 GET 参数,在我尝试过的许多 REGEX 中仍然没有运气如下:
if (preg_match("/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}([/?].*)?$/", 'domain.com?test=test')) {
echo 'true';
} else {
echo 'false';
}
在这里我得到错误返回,因此无法使用所需的 GET 参数验证域。
任何帮助将不胜感激^^
问候
【问题讨论】:
-
您是否有理由要使用正则表达式而不是
filter_var和FILTER_VALIDATE_URL? -
嗨,是的,原因是因为它用于 symfony 路由 yml 文件,需要您使用正则表达式:)
-
对于域验证正则表达式,请参阅stackoverflow.com/a/16491074/112731
标签: php regex preg-match