我有一个像[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]
. 我想用花括号分割这个字符串。输出必须是,
abc,1
eee,2
fff,5,jjj
kkk,9
我需要找出元素的数量。对于上面的例子,元素的数量是 4
我有一个像[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]
. 我想用花括号分割这个字符串。输出必须是,
abc,1
eee,2
fff,5,jjj
kkk,9
我需要找出元素的数量。对于上面的例子,元素的数量是 4
var a = "[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]".slice(2, -2).split('},{');
制作一个正则表达式以删除[
、]
和字符。{
}
var str = "[{abc,1},{eee,2},{fff,5},{kkk,9}]";
str = str.replace(/[\[\]{}]/g, "");
工作示例:http: //jsfiddle.net/72Kdd/
试试这个
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( /^\{/, '' );
你可以试试把牙套换掉。就像是:
String.replace("{").replace("}").split(",");
或者,将其转换为 json 对象并遍历其成员。
这就是我相信你想要的。
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}"
from{a{bc,1}}
和 "a{bc},1"
from因为在检查逗号后{a{bc},1}
的期待。(?=\s*{)