Javascript在文本区域中选择一个句子
我在想,是否有一种方法可以使用javascript从文本区域中拾取任何一个句子,只需单击该句子中的任何位置 我的想法是 -首先,获取当前光标位置(我知道怎么做) -第二,以某种方式定位上一个全站和下一个全站的位置(如何?) -在两个句号内选择任何内容。(怎么做?)Javascript在文本区域中选择一个句子,javascript,textarea,Javascript,Textarea,我在想,是否有一种方法可以使用javascript从文本区域中拾取任何一个句子,只需单击该句子中的任何位置 我的想法是 -首先,获取当前光标位置(我知道怎么做) -第二,以某种方式定位上一个全站和下一个全站的位置(如何?) -在两个句号内选择任何内容。(怎么做?) 或者有一个简单的方法可以做到这一点?我假设您已经知道如何处理插入符号位置以及在插入符号之前/之后获取内容,因此这里有一个伪代码解决方案: 用户点击文本区域 获取当前插入符号位置 将插入符号位置之前的所有内容存储在变量A中 将插入符号
或者有一个简单的方法可以做到这一点?我假设您已经知道如何处理插入符号位置以及在插入符号之前/之后获取内容,因此这里有一个伪代码解决方案:
- 用户点击文本区域
- 获取当前插入符号位置
- 将插入符号位置之前的所有内容存储在变量A中
- 将插入符号位置后的所有内容存储在变量B中
- 在使用中查找最后一个止动块的位置
- 使用以下命令查找B中第一个完全停止的位置
- 处理未找到句号的情况
- 如果发生故障,将位置设置为0
- B)情况下的字符串结尾
- 将子字符串(最后位置、结束位置)从
- 从B中获取子字符串(0,第一个位置)
- 组合子字符串
<html>
<script type="text/javascript">
function getsentence(){
var ta = document.getElementById("ta");
var cursor = ta.selectionStart;
var text = ta.value;
//Find the beginning
var start;
for(var i = cursor; i > 0; i--){
if(text.charAt(i) === "."){
start = i+2;
break;
}
start = 0;
}
//Find end
var end;
for(var i = cursor; i < text.length; i++){
if(text.charAt(i) === "."){
end = i+1;
break;
}
end = text.length;
}
alert(text.substring(start, end));
}
</script>
<body>
<textarea id="ta" rows="10" cols="50" onclick="getsentence()">
This is a sample. Here is sentence two. Here is sentence three. And now on to number four.
</textarea>
</body>
</html>
函数get句子(){
var ta=document.getElementById(“ta”);
var cursor=ta.selectionStart;
var text=ta.value;
//找到开始
var启动;
对于(变量i=光标;i>0;i--){
if(text.charAt(i)=“){
开始=i+2;
打破
}
开始=0;
}
//找到终点
var端;
for(变量i=光标;i