获取所选文本的开始和结束索引? [复制]

Posted

技术标签:

【中文标题】获取所选文本的开始和结束索引? [复制]【英文标题】:Getting the start and end index of selected text? [duplicate] 【发布时间】:2019-07-17 11:25:59 【问题描述】:

给定以下任意字符串:

“这是第一页,这是第二页,这是第二页,这是第三页。”

我正在突出显示(将光标拖到文本上并选择)一个随机子字符串;在本例中,我将突出显示第二次出现的术语 “page two”

我得到这个突出显示的文本使用:

var text = window.getSelection().toString();

我现在需要确定文本中突出显示的术语的开始和结束索引。

字符串和突出显示的术语是任意的 - 没有可供选择的模式。

【问题讨论】:

如果你的文字是"This is page one, and this is page two, and this is page three." - 你的预期结果是什么? 第二次出现(突出显示的文本)。不确定我是否应该将其添加到示例中 - 现在会这样做。 单词如何高亮显示?字符串中是否有 html 标签?您真的只是在问如何在包含在标签中的字符串中查找单词吗? 要得到一个好的答案,您必须描述这个词是如何突出显示的?如果是 html 标签,*** 上已经有很多很好的答案了。看看***.com/questions/2818547/… 和johnresig.com/blog/pure-javascript-html-parser 如果您查看 tge dupe,您会发现 activeEl.selectionStartselectionEnd 【参考方案1】:

这将为您获取光标所选文本的开始和结束索引。

 //To get start index
window.getSelection().anchorOffset
// To get end index
window.getSelection().focusOffset

【讨论】:

请查看更新后的示例。它需要获取任意字符串中突出显示的文本的索引。它并不总是第一次或最后一次出现。 这是在编辑之前制作的。现在代码已更改。如果需要,请告诉我。 不幸的是,与上述答案相同的问题,我们不知道所选单词的位置(可能是第一个或百分之一),但我们只想获取所选单词的索引单词,不是全部。 请检查这是否是您所期望的。 这没有得到索引,只是我能说出的单词的长度。

以上是关于获取所选文本的开始和结束索引? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 javascript 在 getSelection() 中查找所选文本的索引?

如何找到 DOM 文本选择的开始和结束索引?

select2 jQuery插件:获取所选选项的文本值? [复制]

获取textarea文本框所选字符光标位置索引,以及选中的文本值;textarea高度自适应,随着内容增加高度增加;获取输入框中的光标位置

C#如何获取comboBox所选的文本内容

文本搜索功能