使用match关键字存储JavaScript中所有出现的特定字符的行号
我正在跟踪一个链接,该链接存储数组中所有出现的{的行号,但只有当用户在textarea中键入时,即在按键上键入。如果我们直接将内容粘贴到textarea中,则该链接不起作用。 因此,我使用onchange和match关键字在数组中查找和存储行号 textarea内容是:使用match关键字存储JavaScript中所有出现的特定字符的行号,javascript,html,textarea,Javascript,Html,Textarea,我正在跟踪一个链接,该链接存储数组中所有出现的{的行号,但只有当用户在textarea中键入时,即在按键上键入。如果我们直接将内容粘贴到textarea中,则该链接不起作用。 因此,我使用onchange和match关键字在数组中查找和存储行号 textarea内容是: Hello { The next match here line number { Bla Bla blah bla blah blah The next match here line number {
Hello {
The next match here line number {
Bla Bla
blah bla
blah blah
The next match here line number {
end textarea
所需输出为:1 2 6
但输出显示的是最后一个数字:7
请给出正确的解决方案,告诉我这段代码有什么错误。我不想使用jquery
var-arr=[];
var c=0;
功能你好{
var str=document.getElementById'editor'。值;
如果str.match/{/{
arr[c++]=getLineNumber;
}
document.getElementByIdlineNo.innerHTML=
数组内容为…+arr.join“”;
}
函数getLineNumber{
var ta=document.getElementByIdeditor
var x=ta.value.substr0,ta.selectionStart.split\n.length;
返回x;
}
您可以通过按换行符拆分并在每行中找到{的出现点来完成此操作 var-arr=[]; var c=0; 功能你好{ var str=document.getElementById'editor'。值; lines=str.split/\r?\n/; lines.forEachline,索引=>{ if line.match/{/{ arr[c++]=索引; } } document.getElementByIdlineNo.innerHTML= 数组内容为…+arr.join“”; } 使用同样处理粘贴的输入事件处理程序:document.getElementByIdeditor.addEventListenerinput,hello;