javascript - 模式的 Smarty 异常

标签 javascript php regex smarty

我要求密码必须包含 8 个字符,其中有 1 个大写字母和 1 个数字或特殊字符。我已经编写了模式并将其分配给 js 变量。但是当我尝试访问该 tpl 文件时,smarty 抛出“逗号”异常。

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

strPattern是js变量。

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

错误 -

( ! ) FATAL ERROR: UNCAUGHT --> SMARTY COMPILER: SYNTAX ERROR IN TEMPLATE "CHANGE_PASSWORD.TPL" ON LINE 72 "VAR STRPATTERN = /^(?=.[0-9])(?=.[A-Z])(?=.[A-Z])([A-ZA-Z0-9]{8,})$/;" - UNEXPECTED ",", EXPECTED ONE OF: "}" <-- THROWN IN C:\WAMP\WWW\MYPROJECT\SMARTY-3.1.18\LIBS\SYSPLUGINS\SMARTY_INTERNAL_TEMPLATECOMPILERBASE.PHP ON LINE 72*

最佳答案

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

关于javascript - 模式的 Smarty 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26242272/

相关文章:

javascript - 设置 jQuery 元素的属性

javascript - 如何从 ajax 调用中检索元素

javascript - 如何设计多字段的javascript提示框

regex - 从文件名返回字符串的正则表达式

javascript - ionic 框架 : Generating divs dynamically doesn't work

javascript - 如何推迟 Jasmine SpecRunner 的执行

php - 阻止机器人填写 Aweber 表单

当测试字符串中存在反斜杠时,JavaScript 正则表达式匹配错误

regex - 使用正则表达式将 awk one-liner 移植到 perl(汇总数据组)

javascript - 如何在javascript中每隔几分钟开始和停止检查一个条件?