Ошибка с 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);
    }
...

person Jack Soft    schedule 02.11.2012    source источник


Ответы (1)


Используйте тег {literal}, чтобы избежать этих частей, которые могут конфликтовать .

Я цитирую:

{буквальный}

Теги {literal} позволяют воспринимать блок данных буквально. Обычно это используется вокруг блоков Javascript или таблиц стилей, где {фигурные скобки} будут мешать синтаксису разделителя шаблона. Все, что находится внутри тегов {literal}{/literal}, не интерпретируется, а отображается как есть. Если вам нужны теги шаблона, встроенные в блок {literal}, рассмотрите возможность использования {ldelim}{rdelim} вместо отдельных разделителей.

person Bgi    schedule 02.11.2012