首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析错误:语法错误,意外的',',此处的第3行应为'}‘

分析错误:语法错误,意外的',',此处的第3行应为'}‘
EN

Stack Overflow用户
提问于 2010-07-29 03:02:24
回答 6查看 746关注 0票数 1
代码语言:javascript
复制
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;
    }
}

有什么问题吗?抱歉,菜鸟的问题

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-07-29 03:09:28

问题出在线路上:

代码语言:javascript
复制
$text = "^[a-zA-Z\s0-9]{$min,$max}+$";

问题是{$var}是PHP中的一种特殊语法。由于$var,$var不是有效的变量名,因此{$var,$var}无效...

试试这个:

代码语言:javascript
复制
$text = "^[a-zA-Z\s0-9]{{$min},{$max}}+$";
票数 2
EN

Stack Overflow用户

发布于 2010-07-29 03:09:27

不知何故,我想通了:)谢谢。

代码语言:javascript
复制
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;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2010-07-29 03:11:54

问题出在这一行

代码语言:javascript
复制
"^[a-zA-Z\s0-9]{$min,$max}+$"

在用双引号("these")括起来的字符串中,可以包含像"this = $value"这样的变量。

要做到这一点,一种简洁的方法是使用"This is an array element: {$array['element']}"{}封装它们,尤其是在包含数组元素时

因为您有一个包含"{$something的字符串,所以php希望它是一个变量,并查找},但看到的是,。因此出现了错误。

这将解决问题:

代码语言:javascript
复制
"^[a-zA-Z\\s0-9]{{$min},{$max}}+\$"

因为第一个{不会被解释为开始一个要包含的变量。

(是的,\$也是特殊的,需要进行转义)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3356411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档