传递带空格的字符串变量

新手上路,请多包涵

在以下代码中:

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

‘set’ 是一个字符串变量,其中可以包含空格。我注意到当它有空格时它无法正常工作。我怎样才能解决这个问题?

编辑:为了清楚起见,我想保持空间完好无损。

原文由 Howard 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 343
2 个回答

You have to replace intermediate space ( ' ' ) with '%20' using replace() , and eliminate boundary spaces ( ' ' ) using 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>

原文由 Rajesh Paul 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

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

或者

encodeURI(set)

保留字符串内的空格

(参考 When are you should 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,"+")},

原文由 mplungjan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题