yck*_*art 5 string jquery textarea cpu-word getcaretpos
如何通过当前的插入位置在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);
});
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试将代码中的这一行更改为:
var result = /\S+$/.exec(this.value.slice(0, this.value.indexOf(' ',caret.end)));
Run Code Online (Sandbox Code Playgroud)