获取关于插入位置的最新信息

如何通过当前的插入位置在textarrea中找到一个单词?

我尝试了类似这样的东西,但这只返回第一个字母到达插入位置的字符。 例如:

如果光标位于foo之间,则返回fo而不是foo

| o bar不等于bar foo。 => Fo期待Foo

Foo bar不等于 酒吧foo。 => equ期望equal

这是我到目前为止所做的:

 function getCaretPosition(ctrl) { var start, end; if (ctrl.setSelectionRange) { start = ctrl.selectionStart; end = ctrl.selectionEnd; } else if (document.selection && document.selection.createRange) { var range = document.selection.createRange(); start = 0 - range.duplicate().moveStart('character', -100000); end = start + range.text.length; } return { start: start, end: end } } $("textarea").keyup(function () { var caret = getCaretPosition(this); var result = /\S+$/.exec(this.value.slice(0, caret.end)); var lastWord = result ? result[0] : null; alert(lastWord); }); 

http://fiddle.jshell.net/gANLv/

尝试将代码中的此行更改为:

  var result = /\S+$/.exec(this.value.slice(0, this.value.indexOf(' ',caret.end))); 
Interesting Posts