【问题标题】:Passing string variable with spaces传递带空格的字符串变量
【发布时间】:2013-10-21 14:43:05
【问题描述】:

在以下代码中:

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

'set' 是一个字符串变量,其中可以有空格。我注意到当它有空格时它不能正常工作。我该如何解决这个问题?

编辑:为清楚起见,我想保持空格不变。

【问题讨论】:

  • 我想在保留空格的同时传递字符串。
  • 它不必在 URL 中,我只是想保持数据原样。
  • 正如你所说,我认为你应该按照我的回答替换空格,并在对数据进行任何其他操作之前用空格替换所有出现的新字符,以使数据保持完整。
  • 由于网址不支持空格,你想要的和网址格式很相似,你应该试试。

标签: javascript php jquery codeigniter post


【解决方案1】:

使用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

【讨论】:

  • 只删除前导和尾随空格
  • 这个问题不是关于删除空格,而是关于保留它们并仍然让 url 工作。 'set' is a string variable which can have spaces in it
  • @Hanky웃Panky 非常真实。这是真正的问题,即中间空间
【解决方案2】:

注意: $.trim() 现在已弃用 .trim()

使用set.trim() 删除前导或尾随空格以及

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

encodeURI(set)

保留字符串内的空格
(参考When are you supposed to use escape instead of encodeURI / encodeURIComponent?

要同时完成这两件事,只需将它们链接起来

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

请注意,如果您愿意,可以使用 %20 代替加号。

但它不是参数吗?如果是这样,也许您想将其传递为

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

【讨论】:

  • 这是在两个部分都回答这个问题的唯一答案。这不仅仅是删除或修剪这些空间。
【解决方案3】:

您必须将中间空间(' ')替换为 '%20'replace(),并消除边界空间(' ')与 trim()

所以使用下面的代码-

<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>

【讨论】:

    【解决方案4】:

    Rajesh Paul 的回答做得很好,我不知道为什么有人给你投了反对票。

    很好的答案 Rajesh,它对我有用。这就是我所做的:'&amp;p_na2=' + (Txtva3).trim().replace(/ /g, '%20');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多