我有一個正則表達式可以捕獲三個反向引用,儘管一個(第二個)反向引用可能是null
。正則表達式有3個反向引用,但有一個可選
鑑於流動字符串:
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
我要拍攝的TLD(在這種情況下.co.uk),q
PARAM和cd
PARAM。
我用正則表達式如下:
/.*\.google([a-z\.]*).*q=(.*[^&])?.*cd=(\d*).*/i
不同的是二次反向引用包括其他參數高達的cd
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.uk
,所以是第三;它是1
。我想第二次反向引用是null(或undefined或其他)或者只是q
param,在這個例子中是site%3Ajonathonoat.es
。它目前還包含source
參數(site%3Ajonathonoat.es&source=web
)。
任何幫助將不勝感激,謝謝!
我已添加JSFiddle of the code, look in your browser console for the output,謝謝!
我也想考慮解析網址:http://stackoverflow.com/questions/736513/how-do-i-parse-a-url-into -HostName和路徑,在JavaScript的 – Kobi