如何通过当前插入符号位置在 textarrea 中获取单词?
我尝试过这样的事情,但是这只会将单词的第一个字母返回到插入符号位置的字符。例如:
如果光标在fo和o之间,它会返回fo
而不是foo
预期的那样。
fo |
o bar 不等于 bar foo。=>Fo
期望Foo
foo bar 不等于|
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);
});