2013-04-23 70 views
0

我正在使用此函數來獲取我的參數在Javscript中,但在場合,它切斷了我的charge_id參數。函數獲取參數切斷值

$.urlParam = function(name) { 
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
     if (results) { return results[1] || 0; } 
}; 

if ($.urlParam('success')) { 
    // Get Charge ID from param 
    var chargeId = $.urlParam('charge_id') 
}; 

在這種情況下,charge_id參數縮短由上述表達式:

lvh.me:3001/?charge_id=ch_1hK2X4XiaCv3r8&success=true 

這是返回什麼:

ch_1hK2X4Xi 
+0

'[\\? &]'是一個字符集,所以它沒有順序。它相當於'[p &\\; m?a]'。 – Blender 2013-04-23 01:52:15

+1

實體不會在Javascript字符串中被替換,所以只需使用'&',而不是'&'。 – Barmar 2013-04-23 01:52:37

回答

2
$.urlParam = function(name) { 
    var results = new RegExp(name + '=([^&#]+)').exec(window.location.href); 
    if (results) { 
     return results[1] || 0; 
    } 
}; 

應該做的伎倆。正如Barmar在評論中指出的,不要在正則表達式中使用HTML字符引用。