Как сделать в один прием
Пытаюсь поделить текст на нужные мне элементы
const val = `[]Заголовок Некий текст описывающий товар. Продолжение описания на другой строке. [t]Название; Значение Жиры; 10 Белки;20 []Другой заголовок Простой текст для рассказа о товаре ` const re = /(\n\s*\n)+/g console.log(JSON.stringify(val)) const str = val.replace(re, '*') console.log(JSON.stringify(str)) console.log('Есть лишние элементы', val.split(re)) console.log('Так как нужно', str.split('*')) Но нужное мне деление получается "в два приема". Замена на * и потом разбиение на массив. Как бы поменять регулярку чтобы она сразу делила текст на нужные мне элементы? |
ksa,
:-? val.match(/([^\n]+\n)+/mg) |
Цитата:
const val = `[]Заголовок Некий текст описывающий товар. Продолжение описания на другой строке. [t]Название; Значение Жиры; 10 Белки;20 []Другой заголовок Простой текст для рассказа о товаре ` const re = /(\n\s*\n)+/g console.log(JSON.stringify(val)) const str = val.replace(re, '*') console.log(JSON.stringify(str)) console.log(val.split(re)) console.log(str.split('*')) console.log(val.match(/([^\n]+\n)+/mg)) |
И переводы строк остаются в конце элементов... :cray:
0: "[]Заголовок\n" 1: " \n\t\n" 2: "Некий текст описывающий товар.\nПродолжение описания на другой строке.\n" 3: "[t]Название; Значение\nЖиры; 10\nБелки;20\n" 4: "[]Другой заголовок\n" 5: "Простой текст для рассказа о товаре\n" |
В идеале вот такое нужно получить
0: "[]Заголовок" 1: "Некий текст описывающий товар.\nПродолжение описания на другой строке." 2: "[t]Название; Значение\nЖиры; 10\nБелки;20" 3: "[]Другой заголовок" 4: "Простой текст для рассказа о товаре\n" Последний перевод строки не считается. Его в данных не будет. |
Цитата:
|
Видно split() имеет свои виды на паттерн...
const val = `[]Заголовок Некий текст описывающий товар. Продолжение описания на другой строке. [t]Название; Значение Жиры; 10 Белки;20 []Другой заголовок Простой текст для рассказа о товаре ` const re = /\n\s*\n/ console.log(JSON.stringify(val)) console.log(val.split(re)) |
Цитата:
https://javascript.ru/forum/misc/839...tml#post544762 |
Цитата:
|
ksa,
const val = `[]Заголовок Некий текст описывающий товар. Продолжение описания на другой строке. [t]Название; Значение Жиры; 10 Белки;20 []Другой заголовок Простой текст для рассказа о товаре ` let x = val.match(/(([^\n]+\n)+(?:[^\n]+))|([^\n]+(?=\n))/mg); console.log(x) /* 0: "[]Заголовок" 1: "Некий текст описывающий товар.\nПродолжение описания на другой строке." 2: "[t]Название; Значение\nЖиры; 10\nБелки;20" 3: "[]Другой заголовок" 4: "Простой текст для рассказа о товаре" length: 5 */ |
Часовой пояс GMT +3, время: 13:49. |