使用空格传递字符串变量

rot*_*rcz 4 javascript php jquery post codeigniter

在以下代码中:

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

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

编辑:为清楚起见,我想保持空间完整.

mpl*_*jan 6

使用$.trim(set)除去开头或结尾的空格,要么

set.replace(/ /g,"+")  
Run Code Online (Sandbox Code Playgroud)

要么

encodeURI(set)
Run Code Online (Sandbox Code Playgroud)

保持字符串中的空格
(请参阅何时使用escape而不是encodeURI/encodeURIComponent?)

要一次性完成这两项工作

$.trim(set).replace(/ /g,"+")
Run Code Online (Sandbox Code Playgroud)

请注意,如果您愿意,可以使用%20而不是加号.

但这不是参数吗?如果是这样,也许你想把它作为传递

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

  • 这是在这两个部分中回答这个问题的唯一答案.这不仅仅是删除或修剪这些空间. (2认同)

Raj*_*aul 4

您必须使用 using替换中间空间 ( ' ') ,并使用以下方法消除边界空间 ( ) :'%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>
Run Code Online (Sandbox Code Playgroud)