从URI Regex获取Tridion项目ID

rob*_*rtc 2 regex tridion

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

以下是有效的,但我知道有更好的方法.tcm:和'-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, "");
Run Code Online (Sandbox Code Playgroud)

Cer*_*rus 6

如果数字始终 在2个破折号之间,则可以执行以下操作:

var schemaId = schemaUri.split('-')[1];
Run Code Online (Sandbox Code Playgroud)

这样做如下:

  1. split字符串上的'-'字符串 - >['tcm:1', '23', '8'];
  2. 从该数组中获取第二项, '23'

或者,试试这个:

var schemaId = schemaUri.match(/-\d+-/)[0].replace(/-/g,'');
Run Code Online (Sandbox Code Playgroud)

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