我要求密码必须包含8个字符,其中一个大写字母和一个数字或特殊字符。我已经编写了模式并将其分配给js变量。但是,当我尝试访问该tpl文件时,聪明地抛出了“逗号”的异常。
var strPattern = /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]{8,})$/;
strPattern是js变量。
我该如何聪明地处理它?
错误-
( ! ) 致命错误:
松散-> SMARTY编译器:在线72上的模板“ CHANGE_PASSWORD.TPL”中出现语法错误
“ VAR STRPATTERN = /^(?=.[0-9])(?=.[AZ])(?=.[AZ])([A-ZA-Z0-9]{8,})$/; ”
-意外的“,”,预期之一:“}”
最佳答案
由于是JavaScript,因此解决方案应将JavaScript与literal
标记围绕在一起:
<script>
{literal}
var strPattern = /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]{8,})$/;
// here rest of JavaScript
{/literal}
</script>
但是从理论上讲,因为Smarty 3.1文字标签不是必需的。