0

在搜索了 SO 和其他文章(全部内容)之后,几天前我问了一个关于仅使用 Javascript 获取两个字符之间的数字的问题。但不幸的是,我想仅使用 javascript 从字符串中获取子字符串,而不仅仅是数字。我有这个字符串

var str = 'a:7:{i:0;s:1:"1";i:1;s:12:"John Smith";i:2;s:19:"My Life Begins Here";i:3;s:31:"This is my .Picture.jpg";i:4;s:10:"1988-07-26";}'

以及仅从字符串中获取数字的解决方案,效果很好

str.match(/"\d+"/g).join().replace(/"/g,'');

但是如果我们需要获取子字符串,这不起作用,我尝试从正则表达式中删除 \d 但这不起作用。

我在做什么错?这个的输出可以是这样的

 //An array like this
 array = ['1','John Smith', 'My Life Begins Here', 'This is my .Picture.jpg', '1988-07-26'];

实际上,上面的字符串是存储在 MemcacheD 中的 PHP 数组,我在 Node.JS 中检索它,这就是为什么我不能使用 json_encode 左右的原因。我不擅长正则表达式。因此,请专家们对此有所了解。

4

1 回答 1

2

像这样?它仍然会被转义的 \" 字符打破。

str.match(/".*?"/g).map(function(str) {
  return str.substring(1, str.length - 1);
});
于 2014-02-28T23:13:04.040 回答