Есть функция, которая должна выделить из сроки определенную ее часть. На вход подаются строки строго опеределенного формата. В примере с переданной строкой всё работает:
const getAlbumTitle = (entryString) => {
const albumTitleRegExp = /\]([^)]+)\#/
const albumTitle = albumTitleRegExp.exec(entryString)
const albumTitleResult = albumTitle && albumTitle[1] ? albumTitle[1].trim() : 'unknown album'
return albumTitleResult
}
getAlbumTitle('Cradle of Filth [2006] Thornography #Black Metal')
Но если в названии альбома есть скобки - например если передать строку "Weezer [2016] Weezer (White Album) #Alternative Rock", то возвращается unknown album. Т.е. из-за скобок всё ломается.
Подаваемая строка всегда имеет формат
"Артист [год релиза] Название альбома #Жанр"
. В данном случае из такой строки нужно вытащить название альбома. То, что у меня получилось, как видно, работает не всегда правильно. Как лучше сделать?