获取所选文本的开始和结束索引? [复制]
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.selectionStart
和 selectionEnd
【参考方案1】:
这将为您获取光标所选文本的开始和结束索引。
//To get start index
window.getSelection().anchorOffset
// To get end index
window.getSelection().focusOffset
【讨论】:
请查看更新后的示例。它需要获取任意字符串中突出显示的文本的索引。它并不总是第一次或最后一次出现。 这是在编辑之前制作的。现在代码已更改。如果需要,请告诉我。 不幸的是,与上述答案相同的问题,我们不知道所选单词的位置(可能是第一个或百分之一),但我们只想获取所选单词的索引单词,不是全部。 请检查这是否是您所期望的。 这没有得到索引,只是我能说出的单词的长度。以上是关于获取所选文本的开始和结束索引? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript 在 getSelection() 中查找所选文本的索引?
select2 jQuery插件:获取所选选项的文本值? [复制]
获取textarea文本框所选字符光标位置索引,以及选中的文本值;textarea高度自适应,随着内容增加高度增加;获取输入框中的光标位置