我一直在尋找一種方法來設置一個cookie,如果一個URL參數被持續存在。問題是,URL參數的名稱是半動態的。getParameter - 帶有動態名稱值的URL參數
的網址是:
http://zzzz.test.bbbb/index.html?transaction[XXXX][zzzzz]=YYYYY
凡XXXX
和zzzzz
都澳的URL名稱的一部分,但可以根據什麼在鏈接改變。
正確的getParameterByName
函數如何識別URL參數transaction[XXXX][zzzzz]
?
我已經試過,但它不工作:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp(name + '(?:\\[\\d+\\]?:\\[\\d+\\])?=' + '(.+?)(&|$)'),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
if (getParameterByName("transaction")) {
set_cookie ("Transaction_ID", getParameterByName("transaction"));
}
任何想法?
xxxx和zzzz可以是什麼類型的值?它只是字母嗎?或字母和數字? 如果只有單詞事務存在時才設置cookie,那麼這還是足夠了嗎? – wallop 2014-09-27 09:38:00
也是交易總是第一個查詢參數? – wallop 2014-09-27 09:40:07
@Wishy xxxx和zzzz可以是字母或數字。該參數可以在鏈接的任何地方。如果它是第一個,那麼它將顯示爲'transaction [XXXX] [zzzzz] = YYYYY'如果它不是第一個出現'&transaction [XXXX] [zzzzz] = YYYYY' – 2014-09-27 10:00:30