模式的Smarty异常

时间:2014-10-07 18:01:44

标签: javascript php regex smarty

我要求密码必须包含8个字符,其中包含一个大写字母&一个数字或特殊字符。我写了模式并将其分配给js变量。但是当我试图访问那个tpl文件时,smarty会抛出“逗号”的异常。

var strPattern = /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]{8,})$/;

strPattern是js变量。

我应该如何在smarty中处理它?

错误 -

  

(!)致命错误:   UNCAUGHT - > SMARTY编译器:模板中的语法错误“CHANGE_PASSWORD.TPL”在线72   “VAR STRPATTERN = /^(?=.[0-9])(?=.[AZ])(?=.[AZ])([A-ZA-Z0 -9] {8,})$ /;”    - 意外的“,”,预期之一:“}”< - THROWN在C:\ WAMP \ WWW \ MYPROJECT \ SMARTY-3.1.18 \ LIBS \ SYSPLUGINS \ SMARTY_INTERNAL_TEMPLATECOMPILERBASE.PHP在线72 *

1 个答案:

答案 0 :(得分:1)

作为它的JavaScript,解决方案应该是围绕带有literal标记的JavaScript:

<script>
{literal}
var strPattern = /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]{8,})$/;
// here rest of JavaScript
{/literal}
</script>

然而,理论上,因为Smarty 3.1文字标签不应该是必要的。