首页 > 解决方案 > AEM 调度程序中的正则表达式格式不同

问题描述

当我们创建具有正斜杠的正则表达式时,我们需要在正斜杠之前放置一个反斜杠,因为正斜杠是未转义的分隔符。例如,如果我希望我的正则表达式匹配 /content/att,那么我需要像这样放置正则表达式 /content\/att。这也有效。

但是当我们在 AEM 中添加调度程序规则以允许 url 路径时,未转义的分隔符不需要反斜杠。我很感激有人可以帮助我理解这一点,我的意思是为什么我们在编写正则表达式时需要反斜杠,但在调度程序规则的 url 路径中使用相同的正则表达式时不需要。

在 dispatcher 中,查看 url 路径 - /att 之前没有反斜杠

/type "allow"
/url "/content/att"
/extension '(gif)'
}

标签: regexaem

解决方案


我不熟悉 AEM Dispatcher,但这里是您的正则表达式问题的通用答案:

那是因为"/content/att"是正则表达式的字符串表示。实际的正则表达式是"/\/content\/att/". 请注意,字符串中的初始斜杠也被转义了。

这是一个示例:这两个 JavaScript 正则表达式是相同的:

  • let regex1 = /^\/content\/att/;
  • let regex2 = new RegExp( "^/content/att" );

推荐阅读