smarty出错(模板中的语法错误)

时间:2012-11-02 18:52:42

标签: php javascript smarty

页面上显示错误,我使用smarty作为模板

错误smarty是:

  Fatal error: Uncaught exception 'SmartyCompilerException' with message
 'Syntax Error in template ".\templates\footer.tpl" 
on line 72 "var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;"

第72行是(js):

<script type="text/javascript">
    function validateEmail(email) { 
        var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return reg.test(email);
    }
...

1 个答案:

答案 0 :(得分:3)

使用{literal}标记来转义可能发生冲突的部分。

我引用:

  

{字面}

     

{literal}标签允许从字面上获取数据块。这是   通常用于Javascript或样式表块,其中{curly   大括号}会干扰模板分隔符语法。什么   在{literal} {/ literal}标签内不会被解释,而是显示   原样。如果您需要嵌入{literal}块中的模板标签,   考虑使用{ldelim} {rdelim}来逃避单个分隔符   代替。