我有一个像[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]
这样的字符串。我想用花括号拆分这个字符串。输出必须是,
abc,1
eee,2
fff,5,jjj
kkk,9
我需要找出没有元素的东西。对于上面的例子,没有元素是4
答案 0 :(得分:1)
制作正则表达式以删除[
,]
,{
和}
字符。
var str = "[{abc,1},{eee,2},{fff,5},{kkk,9}]";
str = str.replace(/[\[\]{}]/g, "");
答案 1 :(得分:1)
var a = "[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]".slice(2, -2).split('},{');
答案 2 :(得分:0)
您可以尝试更换大括号。类似的东西:
String.replace("{").replace("}").split(",");
或者,将其转换为json对象并迭代其成员。
答案 3 :(得分:0)
这是我认为你想要的。
var str = "[{abc,1},{eee,2},{fff,5},{kkk,9}]";
Array.prototype.map.call( // for each of
str // the string's
.match(/\{(.*?)\}(?:,(?=\s*{)|]$)/g), // matches to a certain pattern
function (e) {
return e.slice(1,-2); // take the middle chars
}
);
// Array ["abc,1", "eee,2", "fff,5", "kkk,9"]
注意:由于在检查逗号后向前看"a{bc,1}"
,这将从{a{bc,1}}
和"a{bc},1"
{a{bc},1}
提供(?=\s*{)
。
答案 4 :(得分:0)
试试这个
var x = '[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]';
var items = x.match( /\{[^{]*(?=\})/g );
for ( var i in items ) items[ i ] = items[ i ].replace( /^\{/, '' );