如果我有一个像这样的Tridion URI 'tcm:1- 23 -8‘,我想用正则表达式得到23。
下面的方法是可行的,但我知道还有更好的方法。中医:和'-8‘总是存在的。改变的部分是1和23。
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, "");发布于 2013-01-07 19:35:13
如果数字始终在两个短划线之间,则可以执行以下操作:
var schemaId = schemaUri.split('-')[1];这将执行以下操作:
对该数组中的第二项'23'执行
split操作--> ['tcm:1', '23', '8'];'-'字符上的字符串或者,试试这个:
var schemaId = schemaUri.match(/-\d+-/)[0].replace(/-/g,'');这将使用.match(/-\d+-/)找到破折号之间的数字,然后删除破折号。
发布于 2013-01-07 21:33:00
您可以只调用$display.getUri();然后使用split(),而不是调用$display.getItem().getId();
var schemaId = $display.getUri().split('-')[1];发布于 2013-01-07 23:48:42
如果您确实想要一个纯Regex解决方案...
/^tcm:(\d+)-(\d+)(?:-(\d+))?$/i我应该验证Tridion URI的格式,并为您提供3个子匹配,其中第二个将是项ID
https://stackoverflow.com/questions/14194938
复制相似问题