使用window.getSelection()选择单词和周围的单词

时间:2018-03-18 12:08:01

标签: javascript

使用window.getSelection()我希望在n位置选择一个单词,还可以在n-1n+1位置选择单词。

例如:

this is a sentence

突出显示:is

字n-1:this

字n + 1:a

我理解如何使用正则表达式执行此操作,但如何使用window.getSelection()执行此类操作?

1 个答案:

答案 0 :(得分:1)

你知道HTML页面的结构吗?你控制它吗? 如果没有,这可能很困难。

如果选择位于页面上的一个元素中,则可以借助所选范围对象完成此操作:

var range = window.getSelection()。getRangeAt(0);

它具有包含起始位置,结束位置和所选元素的文本的属性。

然后你可以在选择位置之前和之后按空格分隔文本,并在所选单词之前和之后得到单词。

var allWordsBefore = range.startContainer.wholeText.substr(0, range.startOffset).trim().split(' ');
var prevWord = allWordsBefore[allWordsBefore.length-1];

同样,你可以在选择后得到这个词。