lte*_*era 6 javascript regex replace sitefinity
我想从字符串标识符中删除每个特殊字符,并用连字符替换它们,这样它就可以是 URL 友好的。
这是 Sitefinity CMS URL 配置的一部分,这意味着每次我创建一个项目时,它都会获取其标题并根据我提供的正则表达式生成一个 URL slug。
因此,我只能使用一个正则表达式和一个替换文本,因为它是添加在 Sitefinity 的 CMS URL 配置字段中的。
我无法在多个步骤中使用代码或使用正则表达式。
因此,例如,如果我有以下标题字符串:
Infographic phishing's awareness and $prevention (updated)
我希望它转变为:
infographic-phishing-awareness-and-prevention-updated
在设置/高级/系统/站点 URL 设置/URLRulesClient 中,我们设置了默认的正则表达式: [^\p{L}-!$()=@\d_'.]+|.+$
问题在于,创建内容时,URL 仅用连字符替换空格,而不是特殊字符。
有没有办法可以用空格替换字符串末尾的最后一个特殊字符?
您可以尝试这个正则表达式 - 它匹配除任何语言的任何字母、数字 (0-9)、破折号、下划线之外的所有内容:
\n(?:\'s)?[^\\p{L}\\-\\d_]+|\\.+$\nRun Code Online (Sandbox Code Playgroud)\n如果您在 Sitefinity 中的标题是:\n信息图表网络钓鱼的意识和 $预防(已更新)。+!@=\xc2\xa8$\'^^;,:
\nSitefinity 使用自定义正则表达式生成的 URL 如下所示\n infographic-phishing-awareness-and-prevention-updated
\n\n\n如果您想在 url 中保留点 (.),只需将其添加到方括号内即可 -\\.
(?:\'s)?[^\\p{L}\\-\\d_\\.]+|\\.+$\nRun Code Online (Sandbox Code Playgroud)\n如果您想在网址中包含任何字符而不用破折号替换它们,只需将它们添加到方括号之间 - 下面是我如何包含括号的示例(我知道您想用破折号替换它们 - 只是作为示例以供参考) -\\(\\)
(?:\'s)?[^\\p{L}\\-\\d_\\(\\)]+|\\.+$\nRun Code Online (Sandbox Code Playgroud)\n我在 Sitefinity 中测试了评论中的建议,但它们对我不起作用。您在 Sitefinity 中测试过它们吗?
\n