首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从URI正则表达式获取Tridion项目ID

从URI正则表达式获取Tridion项目ID
EN

Stack Overflow用户
提问于 2013-01-07 19:25:45
回答 3查看 438关注 0票数 2

如果我有一个像这样的Tridion URI 'tcm:1- 23 -8‘,我想用正则表达式得到23。

下面的方法是可行的,但我知道还有更好的方法。中医:和'-8‘总是存在的。改变的部分是1和23。

代码语言:javascript
复制
var schemaUri = $display.getItem().getId(); // tcm:1-23-8
var re = /tcm:\d-/gi;  // = 23-8
var schemaIdWithItemType = schemaUri.replace(re, "");
re = /-8/gi;
var schemaId = schemaIdWithItemType.replace(re, "");
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-07 19:35:13

如果数字始终在两个短划线之间,则可以执行以下操作:

代码语言:javascript
复制
var schemaId = schemaUri.split('-')[1];

这将执行以下操作:

对该数组中的第二项'23'执行

  1. split操作--> ['tcm:1', '23', '8'];
  2. Get '-'字符上的字符串

或者,试试这个:

代码语言:javascript
复制
var schemaId = schemaUri.match(/-\d+-/)[0].replace(/-/g,'');

这将使用.match(/-\d+-/)找到破折号之间的数字,然后删除破折号。

票数 7
EN

Stack Overflow用户

发布于 2013-01-07 21:33:00

您可以只调用$display.getUri();然后使用split(),而不是调用$display.getItem().getId();

代码语言:javascript
复制
var schemaId = $display.getUri().split('-')[1];
票数 3
EN

Stack Overflow用户

发布于 2013-01-07 23:48:42

如果您确实想要一个纯Regex解决方案...

代码语言:javascript
复制
/^tcm:(\d+)-(\d+)(?:-(\d+))?$/i

我应该验证Tridion URI的格式,并为您提供3个子匹配,其中第二个将是项ID

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14194938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档