查找a的当前行的值<;textarea>;使用javascript

查找a的当前行的值<;textarea>;使用javascript,javascript,jquery,textarea,newline,Javascript,Jquery,Textarea,Newline,如何找到textarea当前行的值 我知道我必须找到插入符号的位置,但要找到它之前的所有内容直到最后一个\n,以及它之后的所有内容到下一个\n 我如何才能做到这一点?一个简单的方法就是循环: var caretPos = 53, // however you get it start, end ; for (start = caretPos; start >= 0 && myString[start] != "\n"; --start); for (end = c

如何找到textarea当前行的值

我知道我必须找到插入符号的位置,但要找到它之前的所有内容直到最后一个\n,以及它之后的所有内容到下一个\n


我如何才能做到这一点?

一个简单的方法就是循环:

var caretPos = 53, // however you get it
    start, end
;

for (start = caretPos; start >= 0 && myString[start] != "\n"; --start);
for (end = caretPos; end < myString.length && myString[end] != "\n"; ++end);

var line = myString.substring(start + 1, end - 1);
var caretPos=53,//不管你得到什么
开始,结束
;
对于(start=caretPos;start>=0&&myString[start]!=“\n”--start);
对于(end=caretPos;end
根据nickf的回答,下面的示例(使用jQuery)可能要快一点,因为它使用了
(lastI|i)ndexOf

function current_line(textarea) {
  var $ta = $(textarea),
      pos = $ta.getSelection().start, // fieldselection jQuery plugin
      taval = $ta.val(),
      start = taval.lastIndexOf('\n', pos - 1) + 1,
      end = taval.indexOf('\n', pos);

  if (end == -1) {
      end = taval.length;
  }

  return taval.substr(start, end - start);
}

这就是。

感谢indexOf方法!