- 此问题在此处已有答案**:
Variable inside regular expression php(2个答案)
2天前关闭。
- SOLVED**我需要用额外的花括号将变量括起来
preg_match("/^[A-Za-z0-9_-]{{$min},{$max}}+$/i", $username)
我尝试在preg_match(){,}中使用一些整型变量进行范围检查,但是如果我尝试使用定义的变量而不是原始数字,它会抛出一个错误。
下面的示例抛出一个错误:
$min = 4;
$max = 20;
preg_match("/^[A-Za-z0-9_-]{$min,$max}+$/i", $username)
下面的例子有效,而上面的例子无效,尽管它们都是整型变量。
preg_match("/^[A-Za-z0-9_-]{4,20}+$/i", $username)
允许我举第一个例子吗?
2条答案
按热度按时间bihw5rsg1#
我希望这对你有帮助。
差值以**{".$最小值",".$最大值"}**表示
h7appiyu2#
您使用了以下字符串插值语法之一:
{$var}
,不允许使用多个变量,如{$foo, $bar}
。您还应该删除量词值之间的空格:
{4,20}
.您可以转义花括号以避免语法错误:
或者可以使用串联、sprintf()等。
A-Z
范围,因为你的RegEx是不区分大小写的,这要归功于i
标志。你也不需要量词后面的+
。