如何在 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 实体:
"
"
或者也许:
"
你的意思是它破坏了你的 HTML?您是否将正则表达式本身插入 HTML?在这种情况下,每当您将非 HTML 的内容插入 HTLM 时,都需要将其转义,例如 ${someValue?html}
.
此外,您不应该对引号进行双重转义,因为 "
在正则表达式中不保留。所以它应该只是 pattern="[^\"'<>]+"
.
我有创建输入类型文本的宏 ctrls.textInput,我想添加带有引号的正则表达式模式属性,但它破坏了我的模板,
我试过了:
<@ctrls.textInput pattern="[^\x22'<>]+" required=true maxlength=50 />
但是 \x22
被 html 中的引号替换并且它破坏了我的 html,有没有办法在模式属性中添加引号?
我也试过 \\x22
但我最终在属性中得到了 \x22
。
此语法在某些方面似乎遵循 XML 的语法。要用代码点来计算 XML 中的字符,您可以使用 HTML 实体:
"
"
或者也许:
"
你的意思是它破坏了你的 HTML?您是否将正则表达式本身插入 HTML?在这种情况下,每当您将非 HTML 的内容插入 HTLM 时,都需要将其转义,例如 ${someValue?html}
.
此外,您不应该对引号进行双重转义,因为 "
在正则表达式中不保留。所以它应该只是 pattern="[^\"'<>]+"
.