function validText ( $input, $min = null, $max = null )
{
if ( !empty($min) && !empty($max) ) {
$text = "^[a-zA-Z\s0-9]{$min,$max}+$";
} else {
$text = "/^[a-zA-Z\s0-9]+$/";
}
if ( preg_match( $text, $input ) )
{
return true;
}
else
{
return false;
}
}有什么问题吗?抱歉,菜鸟的问题
发布于 2010-07-29 03:09:28
问题出在线路上:
$text = "^[a-zA-Z\s0-9]{$min,$max}+$";问题是{$var}是PHP中的一种特殊语法。由于$var,$var不是有效的变量名,因此{$var,$var}无效...
试试这个:
$text = "^[a-zA-Z\s0-9]{{$min},{$max}}+$";发布于 2010-07-29 03:09:27
不知何故,我想通了:)谢谢。
function validText ( $input,$min = null ,$max = null )
{
if(!empty($min) && !empty($max)) {
$text = '^[a-zA-Z\s0-9]{'.$min.','.$max.'}+$';
} else {
$text = "/^[a-zA-Z\s0-9]+$/";
}
if ( preg_match( $text, $input ) )
{
return true;
}
else
{
return false;
}
}发布于 2010-07-29 03:11:54
问题出在这一行
"^[a-zA-Z\s0-9]{$min,$max}+$"在用双引号("these")括起来的字符串中,可以包含像"this = $value"这样的变量。
要做到这一点,一种简洁的方法是使用"This is an array element: {$array['element']}"等{}封装它们,尤其是在包含数组元素时
因为您有一个包含"{$something的字符串,所以php希望它是一个变量,并查找},但看到的是,。因此出现了错误。
这将解决问题:
"^[a-zA-Z\\s0-9]{{$min},{$max}}+\$"因为第一个{不会被解释为开始一个要包含的变量。
(是的,\和$也是特殊的,需要进行转义)
https://stackoverflow.com/questions/3356411
复制相似问题