在javascript上使用Regex验证tridion TCM ID,看起来很简单但不幸的是我没有这样做。
我尝试了所有可能的方法来验证tcm id。
以下是最后一次尝试的正则表达式: -
(tcm:(\d)+-(\d)+(-16|-4|-64))\W
此处TCM ID
可以是component
或SG
或Page
。
有效的tcm id是
请建议最好的正则表达式来验证tcm id。
答案 0 :(得分:9)
提供的正则表达式xdazz非常适合您提供的示例。但是对于更通用的处理,您可能希望:
/^tcm:\d+-\d+(?:-16|-4|-64)?$/
/^tcm:\d+-\d+(?:-\d+)?$/
/^tcm:\d+-\d+(?:-\d+)?(?:-v\d+)?$/
当然,这会让你非常接近Nuno的答案,这样可以让匹配组具有可读的名称。
答案 1 :(得分:8)
尝试:
/^tcm:\d{3}-\d{4}(?:-16|-4|-64)?$/
答案 2 :(得分:5)
我在c#中使用它来验证Tcm Uri(我相信这也是TcmUri.IsValid()
正在做的事情)
"^tcm:(?<pubId>[0-9]+)-(?<itemId>[0-9]+)(-(?<itemType>[0-9]+))?(-v(?<version>[0-9]+))?$"
如果要验证它是页面还是组件,则itemType应为空,16或64。