我有一個字符串,如[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]
。我想用花括號分割這個字符串。輸出必須是,JavaScript:分割逗號分隔的字符串,但忽略花括號
abc,1
eee,2
fff,5,jjj
kkk,9
我需要找出no的元素。以上例子中沒有元素是4
我有一個字符串,如[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]
。我想用花括號分割這個字符串。輸出必須是,JavaScript:分割逗號分隔的字符串,但忽略花括號
abc,1
eee,2
fff,5,jjj
kkk,9
我需要找出no的元素。以上例子中沒有元素是4
只是試試這個
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(/^\{/, '');
製作一個正則表達式來刪除[
,]
,{
和}
字符。
var str = "[{abc,1},{eee,2},{fff,5},{kkk,9}]";
str = str.replace(/[\[\]{}]/g, "");
var a = "[{abc,1},{eee,2},{fff,5,jjj},{kkk,9}]".slice(2, -2).split('},{');
+1,我更喜歡['slice'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/slice)到['substr'](https:// developer .mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substr),但afaik這個和我的代碼相差無幾。 – 2013-03-02 15:27:31
這裏是什麼,我相信你想要的。
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*{)
的。
如果你能夠使用['split'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split)獲得你想要的數據,而不是「匹配」它,因爲這是更多的代碼和效率較低。記住'split'也可以採用RegExp。 – 2013-03-02 15:30:35
你必須覆蓋像'[{QWE,{RTY,眼壓}}等]'案件? – Eric 2013-03-02 15:00:44
你的意思是什麼「*忽略引號中的花括號*」?請舉一些例子。向我們展示你的嘗試! – Bergi 2013-03-02 16:03:52
埃裏克:沒有必要像這樣覆蓋 – 2013-03-03 04:18:26