如何通过当前的插入位置在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); });
解决方法
尝试将代码中的这一行更改为:
var result = /\S+$/.exec(this.value.slice(0,this.value.indexOf(' ',caret.end)));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。