模式的智能异常

Smarty exception for pattern

本文关键字:异常 智能 模式      更新时间:2023-09-26

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

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

strPattern是js变量。

我应该如何巧妙地处理它?

错误-

(!)致命错误:未捕获-->SMARTY编译器:第72行模板"CHANGE_PASSWORD.TPL"中存在语法错误"VAR STRPATTERN=/^(?=.[0-9])(?=.''[A-Z])((?=.[[A-Z])([A-ZA-Z0-9]{8,})$/;"-意外的",",预期的其中之一:"}"<--在第72行的C:''WAMP''WWW''MYPROJECT''SMARTY-3.1.18''LIBS''SYSPLUGINS''SMARTY_INTERNAL_TEMPLATECOMPILERBASE.PHP中抛出

由于是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的文字标签不应该是必要的。