如何在 freeMarker 属性 中向正则表达式添加引号

How to add quote to regex inside freeMarker property

我有创建输入类型文本的宏 ctrls.textInput,我想添加带有引号的正则表达式模式属性,但它破坏了我的模板,

我试过了:

<@ctrls.textInput pattern="[^\x22'<>]+" required=true maxlength=50 />

但是 \x22 被 html 中的引号替换并且它破坏了我的 html,有没有办法在模式属性中添加引号?

我也试过 \\x22 但我最终在属性中得到了 \x22

此语法在某些方面似乎遵循 XML 的语法。要用代码点来计算 XML 中的字符,您可以使用 HTML 实体:

&#34;
&#x22;

或者也许:

&quot;

你的意思是它破坏了你的 HTML?您是否将正则表达式本身插入 HTML?在这种情况下,每当您将非 HTML 的内容插入 HTLM 时,都需要将其转义,例如 ${someValue?html}.

此外,您不应该对引号进行双重转义,因为 " 在正则表达式中不保留。所以它应该只是 pattern="[^\"'<>]+".