从字符串中获取字符串的startoffset和endoffset

时间:2018-03-27 12:42:25

标签: javascript jquery css angularjs html5

我是angularjswebdevelopoment的新手。在这里,我确实有字符串,这是选定的字符串,它像 -



var getSelectedText = function() {
  var text = "";
  if (typeof window.getSelection !== "undefined") {
    text = window.getSelection().toString();
  } else if (typeof document.selection !== "undefined" && document.selection.type === "Text") {
    text = document.selection.createRange().text;
  }
  $scope.annotations = annotationList();
  return text;
};




现在,这是从选项卡上显示的字符串中选择的。现在,假设,

  

Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是业界标准的虚拟文本,当时一台未知的打印机采用了类型的厨房,并将其拼凑成一个类型的样本书。它不仅存在了五个世纪,而且还延续了电子排版,基本保持不变。它在20世纪60年代推出了包含Lorem Ipsum段落的Letraset表格,最近还发布了包括Lorem Ipsum版本在内的桌面出版软件Aldus PageMaker。

这是一个字符串,我想得到一个字符串的开始和结束,这是一个选定的字符串

  但也是电子排版的飞跃,基本保持不变。它被普及了

那么,我怎样才能在javascript中获得这个?

1 个答案:

答案 0 :(得分:0)

尝试一下并查看评论:

var str = 'a string to search for a value within, we can add as many words as we want here';

function findWithin(str, searchTerm){
  var index = str.indexOf(searchTerm);
  if(index !== -1){
    // at this point we know the string is within the text
    // the start offset will be the place we found the searchTerm
    // the end offset will be the length of the whole str minus the length from the start of the str to the end of the searchTerm

    var endOfSearchTerm = index + searchTerm.length;
    var endOffset = str.length - endOfSearchTerm;
    return { startOffset: index, endOffset:  endOffset}
  } else {
     return 'string not found in text!'
  }
}

findWithin(str, 'we can add as many')