【发布时间】:2014-03-31 17:54:58
【问题描述】:
首先,我尝试在 SO 上搜索它,但找不到解决方案。我有一个字符串
var str = 'a:5:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";}';
我想在 javascript 中将 " " 之间的所有数字作为数组获取。我在其中一个 SO 问题上尝试了这个建议。
console.log(str.split(/[""]/));
但这会输出
["a:5{i:0;s:1:", "1", ";i:1;:", "2", ";i:2;s:1:", "7", ";i:3;s:1:", "4", ";i:4;s:1:", "5", ";}"]
这并不准确。
实际上,上面的字符串是存储在 MemcacheD 中的 PHP 数组,我在 Node.JS 中检索它,这就是为什么我不能使用 json_encode 左右。我不擅长正则表达式。所以专家们请多多指教。
上面字符串的结果应该是这样的数组或者字符串
str = "1,2,3,4,5";
或者像
这样的数组array = [1,2,3,4,5];
【问题讨论】:
-
这看起来有点像
bencoded字符串(但不是)?编码是什么? -
我不知道。我刚刚在 Node.js 中使用它的扩展 Memcached 得到了这个字符串。这是一个 PHP 存储在 memcached 中的数组。
-
知道这一点真的很有用,因为 javascript 中可能有可用的解码器。这比 RegEx 好得多。
-
我希望有。但目前我认为我必须使用正则表达式得到它,比如 1,2,3,4,5 然后将它拆分成一个数组。
-
这是一个用serialize生成的php数组,而memcached是一个内存缓存,你可以从任何地方连接到它。
标签: javascript php regex arrays serialization