0

数日前にSOや他の記事を検索した後(すべて静脈)、 Javascriptのみを使用して2文字間の数字を取得することについて質問しました。しかし残念ながら、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 に答える