如何使用jQuery从搜索表单中删除空格?

时间:2010-02-24 20:35:07

标签: javascript jquery

我已使用此jQuery代码段替换了搜索表单中的提交网址:

<script type="text/javascript">
$(document).ready(function() {
    $('.search-form').submit(function() {
        window.location.href = "/search-" + $('.search-form input:text').val() + "-" + "keyword"+ "-"+ "keyword2/" + $('.search-form input:text').val() + ".html";
     return false;
    });
});
</script>

这很好用,并将URL转换为一个很好的SEO清理URL。但是我该如何替换空格?

当有人输入“搜索我”时,网址看起来像/search-search me-keyword-keyword2/search me.html,带有空格。使用+或 - 它看起来会好得多。我从PHP中了解str_replace,但我将如何在jQuery中进行此操作?

4 个答案:

答案 0 :(得分:4)

有一个名为encodeURIComponent的本机JavaScript函数,它可以完全满足您的需求。

window.location.href = 
  "/search-" + 
  encodeURIComponent($('.search-form input:text').val()) + 
  "-" + "keyword" + "-" + "keyword2/" + 
  encodeURIComponent($('.search-form input:text').val()) + 
  ".html";

答案 1 :(得分:2)

方法1:使用替换

<script type="text/javascript">
$(document).ready(function() {
    $('.search-form').submit(function() {

        var value = $('.search-form input:text').val();
        value = value.replace(' ', ''); // replace

        window.location.href = "/search-" + value + "-" + "keyword"+ "-"+ "keyword2/" + value + ".html";
     return false;
    });
});
</script>

方法2:编码网址

<script type="text/javascript">
$(document).ready(function() {
    $('.search-form').submit(function() {

        // encode url
        var value = encodeURIComponent($('.search-form input:text').val());

        window.location.href = "/search-" + value + "-" + "keyword"+ "-"+ "keyword2/" + value + ".html";
     return false;
    });
});
</script>

请注意replace方法甚至可以在JQuery中工作,因为Jquery只是javascript库:)

答案 2 :(得分:0)

http://www.w3schools.com/jsref/jsref_replace.asp

replace()方法是原生javascript。那就是你想要的东西。

答案 3 :(得分:-1)

您可以使用mod_rewrite删除空格。这是非常有用的方式。您还可以通过用%20替换空格来从URL中删除空格,但这仅对空格有帮助,并且不会转义其他字符。您真正需要做的是使用URL转义函数。