Javascript在文本区域中选择一个句子

Javascript在文本区域中选择一个句子,javascript,textarea,Javascript,Textarea,我在想,是否有一种方法可以使用javascript从文本区域中拾取任何一个句子,只需单击该句子中的任何位置 我的想法是 -首先,获取当前光标位置(我知道怎么做) -第二,以某种方式定位上一个全站和下一个全站的位置(如何?) -在两个句号内选择任何内容。(怎么做?) 或者有一个简单的方法可以做到这一点?我假设您已经知道如何处理插入符号位置以及在插入符号之前/之后获取内容,因此这里有一个伪代码解决方案: 用户点击文本区域 获取当前插入符号位置 将插入符号位置之前的所有内容存储在变量A中 将插入符号

我在想,是否有一种方法可以使用javascript从文本区域中拾取任何一个句子,只需单击该句子中的任何位置

我的想法是 -首先,获取当前光标位置(我知道怎么做) -第二,以某种方式定位上一个全站和下一个全站的位置(如何?) -在两个句号内选择任何内容。(怎么做?)


或者有一个简单的方法可以做到这一点?

我假设您已经知道如何处理插入符号位置以及在插入符号之前/之后获取内容,因此这里有一个伪代码解决方案:

  • 用户点击文本区域
  • 获取当前插入符号位置
  • 将插入符号位置之前的所有内容存储在变量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