我想用\n
分割textarea的值,并将光标所在的行作为数组中的最后一个值,例如:
1. fyg tgiyu rctvyu cuiby cutv cutrvyb crtvyb
2. rutyu rtcvyb ctrvybu ctrvybu rtcvy
3. rutiyu crtvyu crtvyb rtvyb
4. |
5. tgyho8uji vtybui
6. tvybui yivtubi
现在数字是textarea中的行,第4行是光标所在的行。所以我想分开忽略第5行和第6行的第4行作为最后一行。然后我会运行这样的代码:
lastLine = //the position of the cursor
if(lastLine == ""){
console.log('empty');
} else {
//get the value of the previous line before the lastLine
}
请问如何使用jQuery或JavaScript实现此目的
答案 0 :(得分:0)
$('#theTextArea').prop("selectionStart");
和
$('#theTextArea').prop("selectionEnd");
上述属性为您提供现代浏览器上光标的位置。这个问题一直是linked here before though。对于较旧的浏览器,它可能会有问题。
但是在给定光标位置的情况下,您应该能够将子字符串抓取到光标索引。然后使用正则表达式将最后一行的内容输入到字符串的末尾。
答案 1 :(得分:0)
您可以通过jQuery
substr()
来实现这一目标。
从起点到光标所在的位置选择textarea值的子字符串,并使用换行符将其拆分。像这样;
value = $('textarea').val();
// to get the position of the cursor
index = $('textarea').prop('selectionstart');
// select all from the starting point to the cursor position ignoring line 5 and 6
str = value.substr(0, index);
// split the str with a line break
splt = str.split('\n');
// then finally to get your last line
lastLine = splt[splt.length - 1];