0

经过几个令人沮丧的小时后,我向 stackoverflow 小组寻求帮助。虽然我知道正则表达式可以解决我的问题,但我对做我需要做的事情知之甚少(并且在截止日期前,所以无法在截止日期之前了解我需要什么)。

我的问题是我有以下数组:

(['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 回答