Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разбитие textarea с помошью регулярки (https://javascript.ru/forum/misc/63697-razbitie-textarea-s-pomoshyu-regulyarki.html)

Sherminator 24.06.2016 03:37

Разбитие textarea с помошью регулярки
 
Всем привет!

Имеем textarea, с него получаем строки и их нужно рассортировать по логике, но в регулярках слабоват.

Логика:
строку вида
Artist - track (Ori Mix)
пишем в массив вида
Код:

arr['name'] = 'Artist - track (Ori Mix)'
a
Artist - track (Ori Mix) ## 1:4:32
пишем в массив вида
Код:

arr['name'] = 'Artist - track (Ori Mix)';
arr['time'] = '1:4:32';

Все как бы ничего, когда строка Artist - track (Ori Mix) ## 1:4:32 проходит, то все хорошо, match[1] вернет название match[2] - время.
Но вот строка вида Artist - track (Ori Mix) возвращается 3-ей группой(match[3]) и по регулярке видно.

Вопрос
Как переделать регулярку, чтобы даже в ином случае название возвращалось в match[1]


Сама регулярка
Код:

^(.*)\s*?##\s*(\d*:\d*:\d+)$|^(.*)\s*?$

рони 25.06.2016 23:04

Sherminator,
var str = "Artist - track (Ori Mix) ## 1:4:32", reg = /[^\s#][^#]+[^\s#]/g;
alert( JSON.stringify(str.match(reg)));
str = "Artist - track (Ori Mix)";
alert( JSON.stringify(str.match(reg)));

Sherminator 28.06.2016 13:02

То, что нужно. Спасибо. Но не могли бы вы объяснить принцип работы

рони 28.06.2016 16:08

Цитата:

Сообщение от Sherminator
Но не могли бы вы объяснить принцип работы

/[^\s#][^#]+[^\s#]/g; начать и закончить выборку с непробела и нерешотки в середине символы нерешотки


Часовой пояс GMT +3, время: 08:46.