我可以在输入字段中获取光标的实际位置。我怎么能在这个位置上得到整个字。例如,我的输入具有以下文本:Hello World
,并且光标位于位置2.我怎么能得到Hello
?如何使用JavaScript在输入字段中的光标下获取字符串
3
A
回答
2
拿出一小块。我在光标位置分割字符串,并从第一个子字符串和第二个字符串的第一个中获取最后一个字符。通过寻找在左边,在起始位置的右侧的第一个空格字符http://jsfiddle.net/fYkEB/
var el=document.getElementById('el');
var run=document.getElementById('run');
function findWord(str,pos){
var words=str.split(' ');
var offset=0;
var i;
for(i=0;i<words.length;i++){
offset+=words[i].length+1;
if (offset>pos) break;
}
return words[i];
}
run.onclick=function(){
run.value='Word at cursor: '+findWord(el.value,el.selectionStart);
};
1
function getWord (str, curPos) {
var startIndex = (function _this (pos) {
if (!str.substring(pos, pos + 1).match(/[A-Za-z]/)) {
return pos + 1;
} else if (pos === 0) {
return 0;
} else {
return _this(pos - 1);
}
})(curPos - 1);
var endIndex = (function _this (pos) {
if (!str.substring(pos, pos + 1).match(/[A-Za-z]/) || pos === str.length) {
return pos;
} else {
return _this(pos + 1);
}
})(curPos + 1);
return str.substring(startIndex, endIndex);
}
看到这里的工作例如:http://jsfiddle.net/paulbruno/8PR9H/
这里发生了什么。 getWord
取输入字符串str
和光标当前位置curPos
。然后它使用两个递归匿名函数来推送字符串中的每个方法,直到它们碰到字符串的开始和结尾。从技术上讲,它们被称为“命名函数表达式”(see here),并允许您递归地调用函数,即使您不想保存函数对象以备后用。然后,在获得这两个索引后,getWord
再次使用substring
方法,将原始str
中的单词传回。
0
试试这个。它认为用空格划定字符的任意字符串,连续,并将努力,即使输入字母数字:
function myGetWord(aString,aPos){
Nstr = aString.length;
var start = aPos;
var end = aPos;
while (start>0 && aString[start]!=" ")
start--;
while (end<Nstr && aString[end]!=" ")
end++;
return aString.substring(start,end);
}
1
下工作和之间返回字符串:
var value = $(el).val()
var split = el.selectionStart
var a = value.substring(0, split).match(/[A-Za-z]*$/)[0]
var b = value.substring(split).match(/^[A-Za-z]*/)[0]
console.log(a + b)
相关问题
- 1. 如何获取输入字段值JavaScript
- 2. 在光标下获取整个字符串文字
- 3. 如何从输入字段获取字符串值?
- 4. 从Android的光标获取字符串?
- 5. 获取字符串输入
- 6. 如何从用户获取字符串输入并输入字符串输入的总字符值?
- 7. 如何使用documentid获取输入字段的值javascript
- 8. 获取部分字符串到光标
- 9. 如何从用户输入的字符串中搜索字符串使用javascript
- 10. 如何在WPF中使用C#在输入字段中插入字符串Webbrowser
- 11. Javascript更新输入字段(把光标放入输入)
- 12. jquery输入字段 - 按字符获取
- 13. 从多个输入字段中获取字符串
- 14. 如何使用javascript从输入字段获取值
- 15. 在鼠标光标下获取字
- 16. 如何在多个输入字段中获取字段索引?
- 17. 如何在java中输入10000字符的字符串输入
- 18. 如何在PostgreSQL中获取输入字符串的长度
- 19. 如何在Eclipse中的光标下搜索字符串
- 20. 从Java输入中获取字符串
- 21. 使用JavaScript获取表单中输入字段的值
- 22. 如何从JavaScript中的文本输入字段获取值?
- 23. 从输入字段获取值Javascript
- 24. 插入字符串光标所在
- 25. 如何在javascript中使用匹配函数获取字符串
- 26. 使用strtok从输入字符串中获取某些字符串
- 27. 获取下光标字型在Emacs
- 28. 如何在Java中从控制台获取字符串输入?
- 29. 使用获取函数的数组中的字符串输入
- 30. 如何在用户输入一定数量的字符时自动将光标移动到下一个字段
这是一个很好的方法。最糟糕的情况是像'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [']''这可能会杀死CPU的字符串。一个好主意是检查是否有空间。 – 2014-09-12 10:09:33