简体   繁体   中英

How can I split text in parts in javascript

How can I split text in parts in javascript: I have

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.

I want ths split in : 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

So it is split with "," but"," is also used somewhere else!, and you have to skip that!!

You can replace ), with some special character preserving ) at the end and then 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); 

One option would be to use .match instead, and alternate between (non-comma, non-parentheses characters) and (parentheses \\( followed by non- ) characters, followed by a ) ). This way, commas will only result in a new item in the array result if the comma is outside of parentheses:

 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) ); 

To additionally trim out the leading spaces:

 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) ); 

Well, unless you have something specific to split the array in. it can't be done

For now i see that string can be split on "," if it does not occur inside the "()"

So here is the code for that

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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM