通过javascript获取两个字符串之间的字符串值

时间:2015-07-23 04:47:48

标签: javascript sharepoint taxonomy

我想从以下类型的字符串中获取“; L0 |”“; GTSet”之间的字符串值。

var str = test2.match(";L0|" + "(.*?)" + ";GTSet");
 alert(str[1]);

这是我已经做过的事情。

{{1}}

这将从最开始直到“; GTSet”

返回一个字符串

Jsfiddle link here

1 个答案:

答案 0 :(得分:1)

我猜你从SharePoint搜索结果中获得了这个价值,对吧?如果是这样,根据Automatically created managed properties in SharePoint Server 2013

  

托管元数据的数据格式。

     

要查询使用Managed Metadata字段标记的项目,您必须这样做   为每个标签使用唯一标识符。你可以找到独特的   术语库管理中术语集中每个术语的标识符   工具,在GENERAL选项卡上。另外,使用的数据格式   查询必须指定术语中的哪个级别设置查询   应该适用。通过添加以下之一来设置此规范   唯一标识符的前缀:

     
      
  • 要查询使用字词GP0|#
  • 标记的所有项目   
  • 查询使用term GPP|#
  • 子项标记的所有项目   
  • 要查询使用术语集中的术语标记的所有项目:GTSet|#
  •   

基于此信息,以下示例演示如何解析托管元数据的搜索结果值

function parseTaxonomySearchResultValue(val){
    var taxValue = {TermSetGuids: [], TermValues: []};
    var parts = val.split(';');
    parts.forEach(function(part){
       if (part.startsWith("GP0|#")) //term?
       {
           var termGuid = part.replace("GP0|#", "");
           taxValue.TermValues.push({ TermGuid: termGuid});
       }
       else if (part.startsWith("GTSet|#")) //term set?
       {
            taxValue.TermSetGuids.push(part.replace("GTSet|#", ""));
       }
       else if (part.startsWith("L0|#")) //Term with label?
       {
            var termParts = part.replace("L0|#0", "").split('|');
            var termGuid = termParts[0];
            var termLabel = termParts[1];
            var result = taxValue.TermValues.filter(function(tv){  
                return tv.TermGuid == termGuid;
            });
            if (result.length == 0)
                taxValue.TermValues.push({TermGuid : termGuid, Label : termLabel});
            else
                result[0].Label = termLabel;
        }
    });
    return taxValue;
}


//Usage
var taxValue = 'GP0|#9d72d96c-407f-4e45-b2e6-9361faf5808a;L0|#09d72d96c-407f-4e45-b2e6-9361faf5808a|Travel;GTSet|#ac96f075-b7d2-4e90-8dc2-da8875f395fc';
var taxValue = parseTaxonomySearchResultValue(taxValue);
document.getElementById('output').innerHTML = "Term info:<br/>" + "Guid= " + taxValue.TermValues[0].TermGuid + "<br/> Label= " + taxValue.TermValues[0].Label;
<div id='output'/>