0

我有一个字符串 -'A(10), B(20), C(30), D(40), E(10), F(0),'

我想拆分它,以便得到括号外的所有值,用逗号分隔。

输出 -A B C D E F

我正在尝试在 JavaScript 中执行此操作。有任何想法吗?

4

4 回答 4

1

为什么不简单:

var str = 'A(10), B(20), C(30), D(40), E(10), F(0),';
console.log(str.match(/([A-Z])(?=\()/g)); // ["A", "B", "C", "D", "E", "F"]

JS 小提琴演示

更新,对于“整数或字符”的要求:

var str = 'A3(10), aB(20), 34(30), D(40), E(10), F(0),';
console.log(str.match(/([A-Z0-9]+)(?=\()/g)); // ["A3", "B", "34", "D", "E", "F"] 

JS 小提琴演示

如果您更喜欢简单的字符串,而不是数组:

var str = 'A3(10), aB(20), 34(30), D(40), E(10), F(0),';
console.log(str.match(/([A-Z0-9]+)(?=\()/g)).join(' '); // A3 B 34 D E F 

JS 小提琴演示

参考:

于 2013-07-18T19:16:51.500 回答
0

拆分它,以便我得到括号外的所有值,用逗号拆分

删除括号对,然后split

'A(10), B(20), C(30), D(40), E(10), F(0),'.replace(/\(\d+\)/g,"").split(/,\s*/);
// ["A", "B", "C", "D", "E", "F", ""]

要获得您想要的输出,您最好使用match带有前瞻功能的 a (“左括号前的单词字符、一些非括号字符、右括号和逗号”):

'A(10), B(20), C(30), D(40), E(10), F(0),'.match(/\w+(?=\([^)]*\),)/g);
// ["A", "B", "C", "D", "E", "F"]

或者只是.match(/[A-Z]+/g)为了简单起见?

于 2013-07-18T19:12:43.743 回答
0

假设您提供的字符串 100% 代表您尝试从中提取数据的内容,您可以这样做:

var str = 'A(10), B(20), C(30), D(40), E(10), F(0),';
str = str.replace(/\(\d+\)/g, '');

这是一个 jsFiddle显示它有效。

于 2013-07-18T19:12:58.827 回答
0
var str = 'A(10), B(20), C(30), D(40), E(10), F(0),';
var sections = str.split(',');
var myRegexp = /^(?:\s+)?([^\(]+)/;
var results = new Array();
for (var i = 0; i < sections.length; i++) {
    if(sections[i]){
        var match = myRegexp.exec(sections[i]);
        if(match[1]){
             results[results.length] = match[1];
        }
    }
}
console.log(results); // outputs: ["A", "B", "C", "D", "E", "F"]
alert(results.join(' - ')); // alerts: A - B - C - D - E - F
于 2013-07-18T19:22:17.370 回答