3 つの後方参照をキャプチャする正規表現がありますが、1 つ (2 つ目) はnull.
流れる文字列を考えると:
http://www.google.co.uk/url?sa=t&rct=j&q=site%3Ajonathonoat.es&source=web&cd=1&ved=0CC8QFjAA&url=http%3A%2F%2Fjonathonoat.es%2Fbritish-mozcast%2F&ei=MQj9UKejDYeS0QWruIHgDA&usg=AFQjCNHy1cDoWlIAwyj76wjiM6f2Rpd74w&bvm=bv.41248874,d.d2k,.co.uk,site%3Ajonathonoat.es&source=web,1
qTLD (この場合は .co.uk)、 param、およびparamを取得したいと考えていcdます。
次の正規表現を使用しています。
/.*\.google([a-z\.]*).*q=(.*[^&])?.*cd=(\d*).*/i
cd2番目の後方参照にparamまでの他のパラメーターが含まれていることを除いて、これは機能します。現在、これを取得しています:
["http://www.google.co.uk/url?sa=t&rct=j&q=site%3Ajo…,d.d2k,.co.uk,site%3Ajonathonoat.es&source=web,1 ", ".co.uk", "site%3Ajonathonoat.es&source=web", "1", index: 0, input: "http://www.google.co.uk/url?sa=t&rct=j&q=site%3Ajo…,d.d2k,.co.uk,site%3Ajonathonoat.es&source=web,1"]
1 番目の後方参照は正しく、.co.uk3 番目も同様です。です1。この例では、2番目の後方参照をnull(または未定義など)にするか、単なるqパラメータにする必要がありsite%3Ajonathonoat.esます。現在、sourceパラメーターも含まれています(site%3Ajonathonoat.es&source=web)。
どんな助けでも大歓迎です、ありがとう!
コードの JSFiddle を追加しました。ブラウザ コンソールで出力を確認してください。