0

数時間イライラした後、スタックオーバーフロー グループに助けを求めました。私は正規表現が私の問題を解決できることを知っていますが、私がしなければならないことをするのに十分な知識がありません (締め切りがあるので、締め切り前に必要なことを学ぶことができません)。

私の問題は、次の配列があることです。

(['ad53930','160x600','&PG=SPTRF3','&AP=1090','regular'],
['ad55852','728x90','&PG=SPTRF1','&AP=1390','regular'],
['ad52971','300x250_pginterstitial','&PG=SPTRF4','&AP=1089','pgInterstitial'],
['ad52969','300x250','&PG=SPTHP4','&AP=1089','regular'])

&PG= の後の 6 桁のコードを抽出する必要があります。いくつかの正規表現を組み合わせて&PG=XXXXXX文字列全体を取得することはできましたが、Chrome のコンソールに組み込み、ブラウザがクラッシュした後、正規表現を失いました。私が達成しようとしているのは、別の配列または文字列で、上記の配列から 'SPTRF3,SPTRF1,SPTRF4,SPTHP4' の完成品を取得することです。

どんな助けでも大歓迎です!

4

4 に答える 4

0

なぜ正規表現が必要なのですか? 配列内のその文字列に部分文字列を使用するだけです: .substr(3).

"&PG=" 文字列が常に index の配列にある2場合は、次のように配列の配列を反復処理できます。

for (idx in myArray)
   console.log(myArray[idx][2].substr(4), ",");
于 2012-08-02T18:27:41.407 に答える
0

正規表現キャプチャ グループを使用して、この正規表現をforループですべてのアイテムに渡し、結果を別の配列にプッシュします。products

var products = []
for (var i=0, l=arr.length, p; i<l; i++){
  p = /&PG\=(.+)/.exec(arr[i])[1]
  if (p) products.push(p)
}
于 2012-08-02T18:31:09.573 に答える
0

これは私のために働いた:

/&PG=[A-Z]{5}\d/g
于 2012-08-02T18:31:26.287 に答える
0

それはあなたのために働くかもしれません。

var arr = ['ad53930','160x600','&PG=SPTRF3','&AP=1090','regular']
var num = arr[2].substr(4); // it will give SPTRF3
于 2012-08-02T18:32:55.193 に答える