我有一个字符串 - 'A(10), B(20), C(30), D(40), E(10), F(0),'
我想拆分它,以便我得到括号之外的所有值用逗号分割。
输出 - A B C D E F
我试图在JavaScript中执行此操作。有任何想法吗?
答案 0 :(得分:0)
拆分它以便我得到括号之外的所有值用逗号分割
'A(10), B(20), C(30), D(40), E(10), F(0),'.replace(/\(\d+\)/g,"").split(/,\s*/);
// ["A", "B", "C", "D", "E", "F", ""]
要获得您想要的输出,最好使用match
lookahead(“开头括号前的单词字符,一些非括号字符,右括号和逗号”):
'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)
?
答案 1 :(得分:0)
假设您提供的字符串100%代表您尝试从中提取数据,您可以这样做:
var str = 'A(10), B(20), C(30), D(40), E(10), F(0),';
str = str.replace(/\(\d+\)/g, '');
Here is a jsFiddle表明它有效。
答案 2 :(得分:0)
为什么不简单:
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"]
更新了“整数或字符”的要求:
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"]
如果您更喜欢简单的字符串,而不是数组:
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
参考文献:
答案 3 :(得分: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