2012-07-12 66 views
0

我正在爲我的url構建一個查詢字符串,並且需要從編碼中排除某些字符。有沒有辦法從encodeURIComponent中排除某些字符

我要排除的「&」和「=」,這樣我可以做一個聲明這樣:

第一=等等&第二=等等等等....

我猜想最好的方式是如何阻止他們被編碼?

一些代碼:

else if (array[i].nodeName == "SELECT") { 
    if (array[i].id == "multiple") { 
    var selected = $.map($('#multiple option:selected'), 

    function (e) { 
     return $(e).val(); 
    }); 
    $.each(selected, function (index, value) { 
     name = array[i].name; 
     values += app + "\&" + key + "="; 
    }); 

    } else { 
    name = arr[i].name; 
    values = arr[i].value; 
    } 
} 

key = encodeURIComponent(name); 
value = encodeURIComponent(values); 
queryString += name + "=" + values + "&"; 

回答

1

有沒有辦法從encodeURIComponent排除某些字符?

不是。這是一個內置函數,它只需要一個參數。


你確實需要編碼&當它這樣最簡單的辦法是將它們結合起來之前,個人名稱和值編碼出現在鍵或值的中間。限定

function emit(name, value) { 
    queryString += (queryString.indexOf("?") >= 0 ? "&" : "?") 
    + encodeURIComponent(name) + "=" + encodeURIComponent(value); 
} 

,然後調用每個名稱/值對功能在多個選擇或一次爲每個其它選中的輸入。

else if (array[i].nodeName=="SELECT"){ 
    if(array[i].id == "multiple"){ 
    var selected = $.map($('#multiple option:selected'), 
          function(e){return $(e).val();}); 
    $.each(selected, function(index, value){ 
      emit(array[i].name, value); 
      }); 
    } else { 
    emit(arr[i].name, arr[i].value); 
    } 
} 

使用encodeURI或類似的不正確編碼#=或其他必要的代碼點。

0

函數的名稱應當表明,它應該如何使用:調用它的件的查詢字符串,而不是整個查詢字符串的

編輯 —我試着創建一個基於你的代碼的例子,但我無法弄清楚它試圖做什麼。它看起來似乎有語法錯誤。

相關問題