2013-10-14 28 views
3

在下面的代碼傳遞字符串變量:用空格

<script type="text/javascript"> 
     function updateView(set) { 
      $.post("<?php echo base_url("/show_cards/load_page")."/"; ?>"+set, function(data) { 
       $("#content").html(data); 
      }); 
     } 
    </script> 

「設置」是指可以有空格在其中的字符串變量。我注意到它有空間時無法正常工作。我怎樣才能解決這個問題?

編輯:爲清楚起見,我想保持空間不變。

+0

我想傳遞字符串,同時保持空間。 – rotaercz

+0

它不必位於URL中,我只是試圖保持數據原樣。 – rotaercz

+0

正如你所說,我認爲你應該替換空格,因爲我已經回答了,並且在對數據進行任何其他操作之前用空格替換了所有出現的新字符,以使數據完好無損。 –

回答

2

您有trim()replace()以取代'%20'中間空間(' '),消除邊界的空間(' ')。

所以使用下面的代碼 -

<script type="text/javascript"> 
    function updateView(set) { 
    set=set.trim().replace(/ /g, '%20'); 
     $.post("<?php echo base_url("/show_cards/load_page")."/"; ?>"+set, function(data) { 
      $("#content").html(data); 
     }); 
    } 
</script> 
2

使用Trim

<script type="text/javascript"> 
     function updateView(set) { 
      var set=$.trim(set);// by this leading or trailing spaces removes 
      $.post("<?php echo base_url("/show_cards/load_page")."/"; ?>"+set, function(data) { 
       $("#content").html(data); 
      }); 
     } 
    </script> 

你也可以使用string.replace

var set= set.replace(/ /g,"+") ;// like that way in this all the spaces removes 
+0

這隻能刪除前導和尾隨空格 – mplungjan

+0

這個問題不是關於刪除空格,關於保留它們,並仍然讓網址工作。 ''set'是一個字符串變量,它可以有空格' –

+0

@Hanky웃Panky非常真實。這是實際問題,即**中間空間**。 –

6

使用$.trim(set)除去開頭或結尾的空格,要麼

set.replace(/ /g,"+") 

encodeURI(set) 

保留空間裏面的字符串
(參見When are you supposed to use escape instead of encodeURI/encodeURIComponent?

兩者都做在一個去只是把它們連

$.trim(set).replace(/ /g,"+") 

注意您可以使用%20,而不是如果你願意,可以加上。

但它不是一個參數?如果是這樣,也許你希望把它作爲

$.post("<?php echo base_url("/show_cards/load_page")."/"; ?>",{"set":$.trim(set).replace(/ /g,"+")}, 
+2

這是在這兩個部分中回答此問題的唯一答案。這不是關於只刪除或修剪這些空間。 –

0

拉傑什保羅做了與他的回答一份好工作,我不知道爲什麼有人給了你一票下來。

很好的回答拉傑什,它爲我工作。這是我做過什麼:'&p_na2=' + (Txtva3).trim().replace(/ /g, '%20');