我一直在使用Javascript很长一段时间但是这个问题确实引起了我的注意
我创建了一个程序,将玩家从一个字符串分成单个名称。
例如 “Sadio Mane(利物浦),Diao Balde Keita(摩纳哥),Ismaila Sarr(雷恩)”
到
my_array = [Sadio Mane (Liverpool),Diao Balde Keita(Monaco),Ismaila Sarr (Rennes)];
我创建了一个基本功能,它拆分名称并从数据库中给出一个数组,就像这样
var my_array = [];
var club = [];
var names = [];
function splitData(data) {
var spl = data.split(",");
my_array.push(spl);
}
然后这个字符串出现了
“Fakhreddine Ben Youssef(沙特阿拉伯Al Ittifaq),Sabre Khalifa(非洲俱乐部),Wahbi Khazri(法国雷恩)”
当我尝试拆分这种类型的字符串时,它会输出以下内容
my_array = [Fakhreddine Ben Youssef, (Al Ittifaq, Saudi Arabia), Saber Khalifa (Club Africain), Wahbi Khazri , (Rennes, France)];
//which outputs
my_array[0]='Fakhreddine Ben Youssef';
my_array[1]='(Al Ittifaq';
my_array[2]='Saudi Arabia)';
my_array[3]='Saber Khalifa (Club Africain)';
my_array[4]='Wahbi Khazri' ;
my_array[5]='(Rennes';
my_array[6]='France)';
我认为这个问题非常明显,它也是在括号中分割逗号,如果它只是这个字符串我会手动完成它但是有类似方式的30多个字符串。
答案 0 :(得分:1)
您可以使用自己的常量语法定义正则表达式:
var reg = /[^\s,]([^\,(\)]+)(\s)*\([^\(\)]+\)/g;
var s = "Fakhreddine Ben Youssef (Al Ittifaq, Saudi Arabia), Saber Khalifa (Club Africain), Wahbi Khazri (Rennes, France)";
var reg = /[^\s,]([^\,(\)]+)(\s)*\([^\(\)]+\)/g;
console.log(s.match(reg));

请参阅 regex demo
答案 1 :(得分:0)
这是一些非jQuery依赖代码:
float d = -((a*b)*(c/3));
要拆分字符串,您应该使用:float d = -(((float)a*(float)b)*((float)c/3.0));
function advsplit(input, separator) {
var tmp = '';
var output = [];
var bracketCount = 0;
for (var index in input) {
var value = input[index];
if (value == '(') bracketCount++;
if (value == ')') bracketCount--;
if (value == separator && bracketCount == 0) {
output.push(tmp);
tmp = '';
} else tmp += value;
}
output.push(op);
return output;
}
希望我帮忙!