使用Javascript的所选单词的索引

时间:2012-06-17 19:03:35

标签: javascript html selection

如何使用Javascript在HTML中获取所选文本的索引? 例如,在HTML文件中,有如下段落:

  

我住在印度。印度是一个非常美丽的国家。

现在,如果用户在第一句中选择India,则应该有alert 5,如果用户选择第二行的India,则会有alert 6

如何获取用户选择的单词的索引?

2 个答案:

答案 0 :(得分:3)

您可以使用TextRange module的新Rangy library执行此操作。 Rangy的Range对象具有moveStart()moveEnd()方法,允许您在任一方向上一次扩展一个单词的范围。

以下是演示:http://jsfiddle.net/timdown/ArMHy/

代码:

var sel = rangy.getSelection();
if (sel.rangeCount > 0) {
    var range = sel.getRangeAt(0);

    // Expand the range to contain the whole word
    range.expand("word");

    // Count all the preceding words in the document
    var precedingWordCount = 0;
    while (range.moveStart("word", -1)) {
        precedingWordCount++;
    }

    // Display results
    alert("Selection starts in word number " + (precedingWordCount + 1));        
}

答案 1 :(得分:0)

如果要按索引查找字符串,可以使用 -

string.match(regularExpression)[index]

参数值 -

regularExpression =必填。要搜索的值,作为正则表达式。

index = regularExpression的索引。

  

现在您可以将其视为一个对象并为其分配事件处理程序。