Как я могу разделить текст на части в JavaScript - PullRequest
0 голосов
/ 04 декабря 2018

Как я могу разделить текст на части в javascript: У меня есть

Ингредиенты Пюре из фруктов (mangue 25%, банан *), purs jus de fruits (pomme *, фрукты де ла страсть *18%, оранжевый), 100% сельскохозяйственных ингредиентов, биология сельского хозяйства.

Я хочу, чтобы это разделилось на: text[0]= Ingrédients Purée de fruits (mangue 25%, banane*) text[1]= purs jus de fruits (pomme*, fruits de la passion* 18%, orange) text[2]= 100% des ingrédients agricoles issus de l'agriculture biologique

Таким образом, оно разделяется с помощью ",", но "," также используется где-то еще !, и вы должны пропустить это!!

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

Вы можете заменить ), каким-то специальным символом, сохраняя ) в конце, а затем split() it:

var str = "Ingrédients Purée de fruits (mangue 25%, banane*), purs jus de fruits (pomme*, fruits de la passion* 18%, orange), 100% des ingrédients agricoles issus de l'agriculture biologique.";
var text = str.replace(/\),/g, ')&').split('&').map(x=>x.trim());
console.log(text);
0 голосов
/ 04 декабря 2018

Ну, если у вас нет чего-то особенного для разбиения массива. Это невозможно сделать

Пока я вижу, что строку можно разделить на "," если это не происходит внутри "() "

Так вот код для этого

var str = "Ingrédients Purée de fruits (mangue 25%, banane*), purs jus de fruits (pomme*, fruits de la passion* 18%, orange), 100% des ingrédients agricoles issus de l'agriculture biologique.";
var regex = /,(?![^(]*\)) /;
var splitString = str.split(regex);
console.log(splitString);
0 голосов
/ 04 декабря 2018

Один вариант будет использовать вместо .match и чередовать (не запятые, символы без скобок) и (круглые скобки \(, за которыми следуют не ) символы, а затем )).Таким образом, запятые приведут к появлению нового элемента в массиве, только если запятая находится вне скобок:

const str = `Ingrédients Purée de fruits (mangue 25%, banane*), purs jus de fruits (pomme*, fruits de la passion* 18%, orange), 100% des ingrédients agricoles issus de l'agriculture biologique.`;

console.log(
  str.match(/(?:[^,(]+|\([^)]+\))+/g)
);

Чтобы дополнительно обрезать начальные пробелы:

const str = `Ingrédients Purée de fruits (mangue 25%, banane*), purs jus de fruits (pomme*, fruits de la passion* 18%, orange), 100% des ingrédients agricoles issus de l'agriculture biologique.`;

console.log(
  str.match(/(?:[^ ,(][^,(]+|\([^)]+\))+/g)
);
...