获取关于插入位置的最新信息
如何通过当前的插入位置在textarrea中找到一个单词?
我尝试了类似这样的东西,但这只返回第一个字母到达插入位置的字符。 例如:
如果光标位于fo和o之间,则返回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)));