我已使用此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中进行此操作?
答案 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转义函数。