jquery – 获取插入位置的当前字词

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

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

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

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

Foo bar与bar foo不相同. => equ期望平等.

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

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)));

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...