@tantumus21

Как правильно обрезать уродливые строки?

Парсю (или паршу??) страницу, с которой хочу стянуть список музыкальных альбомов. Проблема в том, что названия альбомов заносятся в список в виде совершенно уродских строк. Примерно таких:
'The Marshall Mathers LP 2'
'Bangerz\t\t\t\t\t\t\t\n\t\t\t\t\tDeluxe Version\t\t\t\t\t(!)\n\t\t\t\t\n\t\t\t\t\t' │
'Purpose\t\t\t\t\tDeluxe \t\t\t\t\t(!)\n\t\t\t\t\n\t\t\t\t\t'

"Окей" - подумал я. И начал кромсать строки.
title = title.slice(0, title.indexOf('\t'))
По сути, мне нужны только названия альбомов, а делюкс версия это или нет - мне не важно. Поэтому кромсал до первого встречающегося знака табуляции. В итоге получил такое:
The Marshall Mathers LP
Bangerz
Purpose

То есть, уродливые строки обрезались как нужно. Но у строк без табуляции исчезает последняя буква. Почему так происходит, я не пойму. Как мне добиться нужного результата?

P.S. немного ошибся с приведенными примерами. Подправил!
  • Вопрос задан
  • 87 просмотров
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
str.replace(/\t.*/s, '')
Ответ написан
z80b
@z80b
Frontend
Попробуйте так:
let [title] = title.match(/^[^\t|^\n]+/);
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
[title] = title.split('\t');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@galaxy
Так работает String.slice(), с учетом того, что indexOf() возвращает -1, если подстрока не найдена.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Sportrecs Москва
от 150 000 до 200 000 ₽
30 нояб. 2020, в 23:49
3000 руб./за проект
30 нояб. 2020, в 23:24
1000 руб./за проект
30 нояб. 2020, в 22:50
100000 руб./за проект