使用javascript将复杂的字符串拆分为两个特殊字符

时间:2018-06-14 14:23:49

标签: javascript

我一直在使用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多个字符串。

2 个答案:

答案 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;
}

希望我帮忙!