我有一个jQuery插件,可找到文本区域的插入符位置。我在textarea的keyup函数上实现了它,如下所示:

$("#editor").keyup(function () {
   var textbox = $(this);
   var end = textbox.getSelection().end;
});

我想在插入符号前找到单词或单词的一部分。单词由任何类型的空格分隔。

我这样做的主要困难是处理换行符。给定插入符号的字符索引后,如何在插入符号之前立即找到单词或单词的一部分?

最佳答案

如果为此使用my jQuery textarea plug-in,则选择字符位置始终相对于textarea的value属性,而不管浏览器如何处理换行符。然后,您可以得到如下的最后一个字:

请注意,您必须使用textarea的value属性,而不是jQuery的val()方法,该方法使换行符正常化。

$("#editor").keyup(function () {
    var textbox = $(this);
    var end = textbox.getSelection().end;
    var result = /\S+$/.exec(this.value.slice(0, end));
    var lastWord = result ? result[0] : null;
    alert(lastWord);
});

10-05 20:59
查看更多