2

この「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, "");
4

3 に答える 3

7

数字が常に 2つのダッシュの間にある場合は、次のように実行できます。

var schemaId = schemaUri.split('-')[1];

これは次のことを行います。

  1. split文字の文字列'-'->['tcm:1', '23', '8'];
  2. その配列から2番目のアイテムを取得します。'23'

または、これを試してください:

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

これにより、ダッシュの間にある数字がで検索され、ダッシュが.match(/-\d+-/)削除されます。

于 2013-01-07T11:35:12.560 に答える
3

電話をかけるのではなく、電話をかけてから使用する$display.getItem().getId();ことができます$display.getUri();split()

var schemaId = $display.getUri().split('-')[1];
于 2013-01-07T13:32:59.590 に答える
2

純粋な正規表現ソリューションが必要な場合...

/^tcm:(\d+)-(\d+)(?:-(\d+))?$/i

Tridion URIの形式を検証し、3つのサブマッチを提供する必要があります。2番目のサブマッチはアイテムIDになります。

于 2013-01-07T15:48:42.080 に答える