0

我有一个完整的字符串,由这样的内容组成 [(data1.1)(data1.2)][(data2.1)(data2.1)]

我读过你可以用匹配函数和正则表达式做一些聪明的事情。我想要两个数组,其中的数据从括号中加载出来。我到底该怎么做?请以我的字符串为例。

4

2 回答 2

1

我想出了这个可憎的:

var array = s.replace(/^\[|\]$/g,'').split('][').map(function(a){    
    return a.replace(/^\(|\)$/g,'').split(')(')
});

http://jsfiddle.net/8kLhc/

此外,如果您故意像这样保存或传输数据,那么您应该真正了解一下JSON或适当的数据库设计。

于 2013-04-23T22:33:42.210 回答
0

我不完全确定你在追求什么,但我假设这个

var what = '[(data1.1)(data1.2)][(data2.1)(data2.2)]',
    have = [],
    you = [],
    tried = /\[\(([^)]*)\)\(([^)]*)\)\]/g;
what.replace(tried, function (use, brain, forthis) {
    you.push((have.push(brain), forthis));
});
console.log(have, you);
// ["data1.1", "data2.1"] ["data1.2", "data2.2"]
于 2013-04-23T22:27:34.313 回答