删除1个空格但不删除2个空格

时间:2014-02-03 11:15:36

标签: javascript

我正在使用下面的代码修剪要发送到PHP页面上的SQL的数据。

<script>$(function() { 
                $("#nameselect").change(function() {
                $("#jobnoselect").load("getter.php?choice=" + $.trim($("#nameselect").val()).replace(' ', '+'));
                $("#pagetable").empty();
                });

            });
   </script>

现在它确实有效,如果做出的选择是“两个字”,但如果它是“三个字在这里”它没有并返回空白结果。我不熟悉这种语言,很久以前另一位开发人员给了我这个片段。任何人都可以提供任何帮助吗?

4 个答案:

答案 0 :(得分:1)

使用字符串作为模式的

Replace不是全局的。

更改代码

$.trim($("#nameselect").val()).replace(' ', '+')

$.trim($("#nameselect").val()).replace(/\s/g, '+')

答案 1 :(得分:0)

如果您使用php而不是javascript:

$foo = preg_replace( '/\s+/', ' ', $foo );

答案 2 :(得分:0)

使用encodeURIComponent以便转换和发送空间。

<script>
$(function() { 
    $("#nameselect").change(function() {
        $("#jobnoselect").load("getter.php?choice=" + encodeURIComponent($("#nameselect").val()));
        $("#pagetable").empty();
    });
});
</script>

在您的php页面中使用urldecode来检索内容。

答案 3 :(得分:0)

最好是序列化值,而不是用plus-signs实际替换空格。这是一种更好的方法:

<script type="text/javascript">
   $(function() { 
   $("#nameselect").change(function() {
      $("#jobnoselect").load("getter.php?choice=" + $("#nameselect").serialize());
      $("#pagetable").empty();
   });
});
</script>