我要求密码必须包含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 *
答案 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文字标签不应该是必要的。