我有一个 html 文本区域,我需要从其中的文本中提取单词,具体取决于插入符号的位置。
因此,如果插入符号位于单词中,或者位于单词开头(或结尾)的末尾,我需要得到它。
我怎样才能做到这一点?我不是在寻找库,只是寻找简单的 javascript。 请帮忙。
最佳答案
这里是一些可以完成这项工作的代码。基本上,提取插入符位置。将句子转换为数组。循环数组将单词长度添加在一起,当长度大于插入符号位置时,您就找到了单词。
<html>
<script>
function getCaret(node) {
if (node.selectionStart) {
return node.selectionStart;
} else if (!document.selection) {
return 0;
}
var c = "\001",
sel = document.selection.createRange(),
dul = sel.duplicate(),
len = 0;
dul.moveToElementText(node);
sel.text = c;
len = dul.text.indexOf(c);
sel.moveStart('character',-1);
sel.text = "";
return len;
}
function getWord()
{
var el = document.getElementById('myText');
var carret = getCaret(el);
var words = el.value.split(' ');
var x = 0;
for(var i = 0; i < words.length; i++)
{
debugger;
x += words[i].length + 1;
if(x > carret){ return words[i]; }
}
}
function myWord()
{
var word = getWord();
alert(word);
}
</script>
<body>
<button onclick="myWord();" >Get word</button>
<textarea id="myText">This is a hallo world sentence</textarea>
</body>
</html>
关于javascript - 根据插入符号的位置从文本区域中提取整个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28093158/