2

我的正则表达式在 neos 项目中无法正常工作。DD/MM/YYYY 的正则表达式(仅 19XX-20XX)

var date_regex = /^(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[0-2])\/\/(19|20)\d{2}$/ ;
return date_regex.test(testDate);

我解决了这个问题

var date_regex = /^(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[0-2])\/(19[0-9][0-9]|20[0-9][0-9])$/;

为什么neos删除'{2}',我的新正则表达式有问题吗

您的帮助将不胜感激

4

1 回答 1

2

在 TYPO3 - Fluid 模板引擎中,大括号用于视图变量,因此在视图中使用 JavaScript 通常会产生错误,因为解析器无法猜测这是您的 Fluid 的 var 还是某些 JS 语法。

您有两种解决方案,首先是将整个 JS 移动到静态文件中,并像往常一样将其包含在标题中:<script src="/path/to/your/file.js"></script>

第二种解决方案是转义整个 JS,cdata如下所示:

<script>
<![CDATA[

    var date_regex = /^(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[0-2])\/\/(19|20)\d{2}$/ ;
    // ....

]]>
</script>
于 2016-02-11T09:38:57.960 回答