正则表达式的想法:用逗号分隔,后面不跟任何字符 and ) 或 ]。
此外,两个括号都应该被考虑(和[。假设:字符串包含有效的括号。
这是我的功能:
function spl(str) {
var reg = /\,(?!(?:[\w|\s]*\,?)*[\)\]])/;
console.log(str.split(reg));
}
问题:
incorrectly: spl("tpr(7,4%), nitrita sals (sals- 1.2%, konservants E250)");
incorrectly: spl("tpr(7,4%), nitri(a,b,c[a,b])ta sals (sals- 1.2%, konservants E250),fsfs");
incorrectly: if there are brackets within brackets
以下是示例:
str = "a,b (c,d,e)";
// expected: split into strings "a", "b (c,d,e)"
str = "a,b [c,d,e]";
// expected: split into strings "a", "b [c,d,e]"
str = "tpr(7,4%), nitrita sals (sals- 1.2%, konservants E250)";
// expected split into "tpr(7,4%)", "nitrita sals (sals- 1.2%, konservants E250)"
str = "tpr(7,4%), nitri(a,b,c[a,b])ta sals (sals- 1.2%, konservants E250),fsfs";
//expected: "tpr(7,4%)", "nitri(a,b,c[a,b])ta sals (sals- 1.2%, konservants E250)" and "fsfs"
str = "šokolāde 47% (cukurs, kakao sviests, (SOJAS); vanilīns), pulv";
// expected: splited into two strings; "šokolāde 47% (cukurs, kakao sviests, (SOJAS); vanilīns)" and "pulv"