Javascript удалить первую строку

Удалить часть строки в JavaScript

Если я достиг сконфигурированного количества строк (‘\n’) в строке, я хочу удалить первую строку. Это означает, что весь текст до первого “\n”.

var str = "test1\ntesttest2\ntest3\nstringtest4\n. 5" 
var str = "testtest2\ntest3\nstringtest4\n. 5" 

Есть ли функция в Javascript, которую я могу использовать?

Найти первое появление \n и вернуть только после него

var newString = str.substring(str.indexOf("\n") + 1); 

+ 1 означает, что вы также удаляете символ новой строки, чтобы начало новой строки было только текстом после первого \n из исходной строки.

Вы также можете использовать функцию string.replace .

> var str = "test1\ntesttest2\ntest3\nstringtest4\n. 5" > str.replace(/.*\n/, '') 'testtest2\ntest3\nstringtest4\n. 5' 

str.indexOf(“\n”) +1 получает индекс первого символа после первой строки. str.substr(str.indexOf(“\n”) +1) получает подстроку str, начинающуюся с этого индекса

Вы можете использовать функцию substring(..) . Он встроен в JavaScript. Из документов:

Метод substring() извлекает символы из строки, между двумя указанными индексами и возвращает новую подстроку.

Применение:

mystring.substring(start,end)

Требуется начальный индекс, конечный индекс – нет. Если вы опустите индекс конца, он будет подстрокой от начала до конца строки.

Или в вашем случае что-то вроде:

Вы можете написать такую функцию, если я правильно вас пойму

function removePart(str, count) < var strCount = str.split('\n').length - 1; if(count >strCount) < var firstIndex = str.indexOf('\n'); return str.substring(firstIndex, str.length -1); >return str; > 

Источник

Можно ли удалить первую строку из текста?

Здравствуйте. Появился вопрос, возможно ли с помощью js удалить первую строку из текста.

Например:
«Подзаголовок
Какой-то текст».

Можно ли каким-то способом удалить «подзаголовок»?
Важно, что он может быть любой длины, но всегда будет занимать 1 строчку.

Если это нельзя реализовать с помощью js, как это можно будет реализовать другими способами?

Дан двумерный массив, удалить строку с номером k и вставить после строки k первую строку
Дан двумерный массив, удалить строку с номером k и вставить после строки k первую строку

Имеется текстовый файл. Удалить из него третью строку,первую строку, в конце которой стоит знак ?
Имеется текстовый файл. Удалить из него третью строку,первую строку, в конце которой стоит знак ? .

Проверить можно ли из слов входящих в первую строку составить вторую строку
Даны две строки (char str1, str2), содержащие хотя бы одно слово. Проверьте, можно ли из слов.

Проверить, можно ли из букв, входящих в первую строку, составить вторую строку
Даны две строки. Проверить, можно ли из букв, входящих в первую строку, составить вторую строку.

Считать первую строку и удалить
Доброго времени суток, столкнулся с такой проблемой, мне нужно считать с файла первую строку и.

ЦитатаСообщение от krvsa Посмотреть сообщение

Тогда я не понимаю, как сделать так, чтобы можно было вставить их в 2 поля.

То что уже есть на данный момент

1 2 3 4 5 6 7 8 9 10 11 12 13
div class="main_block"> div class="block_unput"> div class="input_text"> input type="text" name="auto_name" id="auto_name" placeholder="Name"> /div> div class="input_textarea"> textarea type="textarea" name="auto_textarea" id="auto_textarea" placeholder="Text"> /textarea> /div> button id="saved_button" onclick="saveReview()">Тыкалка/button> button id="saved_button2" onclick="review()">Размещалка/button> /div> /div>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
html, body { background: #000; margin: 0; padding: 0; } .main_block{ background:#c0c0c0; width: 500px; height:350px; margin:auto; } .block_unput { padding:10px; } #auto_name { width:50%; padding:15px; } #auto_textarea { width:50%; padding:25px; margin: 10px 0 0 0; } #saved_button,#saved_button2 { padding:20px; border-radius:10px; outline:1px solid #000; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
let autoName = document.getElementById('auto_name'); let autoTextarea = document.getElementById('auto_textarea'); let button = document.getElementById('saved_button'); let button2 = document.getElementById('saved_button2'); let reviewName = []; let reviewText = []; function saveReview(){ reviewName.push(autoName.value); reviewText.push(autoTextarea.value); localStorage.setItem('reviewName', JSON.stringify(reviewName)); localStorage.setItem('reviewText', JSON.stringify(reviewText)); }; function review(){ localStorage.setItem('reviewName', JSON.stringify(reviewName)); localStorage.setItem('reviewText', JSON.stringify(reviewText)); reviewName = JSON.parse(localStorage.getItem('reviewName')); console.log(reviewName.pop(), reviewText.pop()) };

Нужно примерно тоже самое, только сократить до 1-ого поля.

ЦитатаСообщение от PoCoMaX Посмотреть сообщение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
 html> head> meta charset="utf-8" /> style> html, body { background: #000; margin: 0; padding: 0; } .main_block{ background:#c0c0c0; width: 500px; height:350px; margin:auto; } .block_unput { padding:10px; } #auto_name width:50%; padding:15px; } #auto_textarea width:50%; padding:25px; margin: 10px 0 0 0; } #saved_button,#saved_button2 padding:20px; border-radius:10px; outline:1px solid #000; } #def display: none; } style> head> body> form>form> div id='def'> div class="main_block"> div class="block_unput"> div class="input_text"> input type="text" name="auto_name" class="auto_name" placeholder="Name"> div> div class="input_textarea"> textarea type="textarea" name="auto_textarea" class="auto_textarea" placeholder="Text"> textarea> div> button id="saved_button" onclick="saveReview()">Тыкалкаbutton> button id="saved_button2" onclick="review()">Размещалкаbutton> div> div> div> script> const txt = `Сергей Собянин сообщил об открытии еще двух поликлиник после капитального ремонта Головное здание детской городской поликлиники № 133 на Смольной улице практически перестроили. Учреждение оснастили новейшим оборудованием. Здесь ведут прием врачи-педиатры, оториноларинголог, офтальмолог, невролог, хирург и другие специалисты. В этом медицинском учреждении помощь получают около 19 тысяч детей и подростков района Левобережный. Первый филиал детской поликлиники № 122 на Щелковском шоссе в районе Северное Измайлово обслуживает более 14 тысяч юных пациентов. В здании установлено самое современное оборудование, в том числе цифровой рентген и офтальмологическая аппаратура, также есть хорошо оснащенный кабинет оториноларинголога. Большое внимание было уделено благоустройству территорий. Около поликлиники в Левобережном районе обустроили игровую площадку, позже здесь высадят деревья и кустарники. Возле поликлиники в Северном Измайлове эти работы уже проведены. Марио Фернандес определился с игровым номером Марио Фернандес родился 19 сентября 1990 года в Сан-Паулу. Отец Марио — тренер по мини-футболу, поэтому в детстве будущий игрок «Зенита» много времени проводил на паркете. «В Бразилии каждый ребенок рождается с мечтой стать футболистом. Да и меня всю жизнь туда тянуло. Единственное, до 16 лет я думал, что буду играть в мини-футбол», — рассказывал Фернандес. Марио — воспитанник «Сан-Каэтано», но на профессиональном уровне не провел за него ни одного матча. В начале 2009-го юного защитника выкупил «Гремио» — большая карьера Фернандеса началась именно там. При этом сначала Марио гораздо чаще появлялся в центре обороны. «Мне не хватало физики. Я жил один, без мамы, без девушки. Не умел готовить и ел всякую ерунду: шоколадки, гамбургеры, все это запивал газировкой. В клубе об этом узнали и попросили приезжать с утра на базу, чтобы питаться правильно», — вспоминал Фернандес. Проблемы возникали не только из-за непривычного образа жизни — Марио впервые надолго уехал из дома и тосковал по семье. Практически сразу после подписания контракта с «Гремио» он уехал из команды — вернулся только через неделю. «Это было неправильно, но не хочу раскрывать детали. Было несмешно», — говорил футболист.` let a = txt.split(/\n/) a = a.map(s => { const [t, p] = s.split(/\n\n/) return {t, p} }) console.log(a) const op = document.querySelector('form') const od = document.querySelector('#def .main_block') a.forEach(o => { const ob = od.cloneNode(true) ob.querySelector('.auto_name').value = o.t ob.querySelector('.auto_textarea').value = o.p op.insertAdjacentElement('beforeend', ob) }) script> body> html>

Только тут при копировании пробелы добавляются к пустым строкам. Нужно будет их удалить перед запуском.

Источник

Удалить строку текста в JavaScript

Что мне нужно сделать, чтобы, скажем, удалить первую строку и превратить ее в:

6 ответов

Самый простой способ сделать это — использовать функции split и join, которые позволят вам манипулировать текстовым блоком в виде массива строк, например:

// break the textblock into an array of lines var lines = textblock.split('\n'); // remove one line, starting at the first position lines.splice(0,1); // join the array back into a single string var newtext = lines.join('\n'); 

Вы можете сделать это с помощью регулярного выражения, включив символ новой строки в ваш поиск. Если строка, которую вы хотите удалить, находится не в начале, вы должны использовать флаг multiline (m).

> var text = "Line 1\nLine 2\nLine 3"; > console.log(text); Line 1 Line 2 Line 3 > text.replace(/^Line 1\n/m, ""); Line 2 Line 3 > text.replace(/^Line 2\n/m, ""); Line 1 Line 3 

Я пошел немного дальше, чтобы вы могли выбрать количество строк в начале, которые вы хотите удалить:

Я использую это регулярное выражение, где X — номер строки, которую вы хотите удалить +1 (. *?\n)(. *?\n)

const lines = `Line1 Line2 Line3 Line4`; const deleteLines = (string, n = 1)=>< return string.replace(new RegExp(`(. *?\n)>(. *?\n)`), ''); >; console.log(deleteLines(lines, 2));

Это удаляет первую строку из многострочной строковой переменной — проверено в Chrome версии 23 на переменной, которая была прочитана из файла (HTML5) с окончаниями / разрывами строк, которые отображаются в CRLF (возврат каретки + перевод строки) в Notepad ++:

var lines = `first second third`; // cut the first line: console.log( lines.substring(lines.indexOf("\n") + 1) ); // cut the last line: console.log( lines.substring(lines.lastIndexOf("\n") + 1, -1 ) )
var firstLineRemovedString = aString.replace(/.*/, "").substr(1); 

В двух словах: найдите первую строку return (\ n) и используйте функцию JavaScript replace , чтобы удалить все до него (и включая его).

Вот RegEx, который делает это (удивительно сложно, по крайней мере для меня . )

  

Источник

Удалить первую строку из Textarea

У меня есть инструмент, который удаляет пустые строки из подтверждения (текст), но по какой-то причине есть верхняя строка, которая не читается как пустая строка и не удаляется.

В настоящее время мой инструмент позволяет человеку вставлять текст в текстовую область, а затем при нажатии кнопки «удалить пробелы и копировать» удаляются пустые строки и текст копируется в буфер обмена.

Я хочу сохранить ту же функцию, но каким-то образом удалить первую строку, когда текст вводится в текстовую область или когда нажата кнопка «удалить пробелы и копировать».

   
     

2 ответа

Вот быстрое решение, которое вы могли бы использовать, выполнить trim() на замененном тексте:

Регулярное выражение [\n\r](?!\w) соответствует любому символу CR или LF, за которым не следует буквенно-цифровой или символ подчеркивания. Таким образом, он может соответствовать первому из двух ограничителей строки подряд при замене пустых строк пустой строкой. » Он не соответствует разделителю строки, за которым следует буква. Следовательно, терминатор строки в начале текста, за которым следует символ слова, остается на месте.

Пустые строки, определенные как «Начало строки, за которыми следуют ноль или более пробельных символов, не включая символы конца строки, за которым следует конец строки, за которым следуют ноль или более символов конца строки», может сопоставляться многострочное регулярное выражение, например:

/^[ \f\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]*$[\n\r]*/gm; 

где первый набор символов используется для сопоставления пробелов ( \s ) после удаления символов перевода строки и возврата каретки, а также $[\n\r]* Компонент совпадает как с ограничителями строки, так и с концом ввода. (Отредактировано: конечная пустая строка без конца строки соответствует концу)

Попробуйте это ниже, введя строки и щелкнув за пределами элемента textarea, чтобы вызвать событие изменения:

function removeBlankLines( textArea) < var blankLine = /^[ \f\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]*$[\n\r]*/gm; textArea.value=textArea.value.replace(blankLine,''); >

Это не обрезает и не удаляет пробелы в непустых строках. Если вам все еще не удается выполнить то, что вы хотите сделать, обновите вопрос, используя текстовые данные, использованные для создания проблемы, и подробное описание того, что вы ожидали и что вы получили. Пожалуйста, удалите нокаут-код, если он не связан с вопросом (кажется, что нет).

Источник

Читайте также:  Изменить свойства объекта javascript
Оцените статью