Я перешел по ссылке Сохранение номера строки всех вхождений определенного символа в javascript , в котором хранится номер строки всех вхождений "{" в массиве, но только когда пользователь вводит текст в области текстат.е. на нажатие клавиши.Это не сработало, если мы напрямую вставили содержимое в textarea.Поэтому я использовал ключевое слово onchange и match для поиска и сохранения номера строки в массиве.
Содержимое текстовой области:
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;
function hello() {
var str = document.getElementById('editor').value;
if (str.match(/{/)) {
arr[c++] = getLineNumber();
}
document.getElementById("lineNo").innerHTML =
"Array content is... " + arr.join(' ');
}
function getLineNumber() {
var ta = document.getElementById("editor")
var x = ta.value.substr(0, ta.selectionStart).split("\n").length;
return x;
}
<textarea rows="30" cols="100" id="editor" onchange="hello();"></textarea>
<div id="lineNo"></div>