用“ - ”替换空格?

时间:2013-11-30 09:00:49

标签: jquery html

请在下面检查我这个脚本,我不知道它为什么不运行。 现在检查:

<script>
 $("#categories li a").each(function() {

   var hreflink = (/[^/]*$/.exec(decodeURIComponent(this.href)));
   //var realhref = hreflink.replace(/\s/g, '_');
        $(this).attr("href", "#" + hreflink);
  });

</script>

解释:我想用"category"替换所有链接(从链接中捕获) 例如:

我的链接如下:

<a href="http://www.stackoverflow.com/new%20link">New Link</a>

替换后我只有:

<a href="#new-link">New Link</a>

我解码url然后替换但是替换可能有问题。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

.replace(/\s/g,"-");

JSFIDDLE

答案 1 :(得分:1)

尝试:

$("a").each(function(){
    var href = $(this).attr("href");
    href = href.replace(/%20/g,"-");
    href = href.replace(/ /g,"-");
    href = href.split("/").pop();
    $(this).attr("href","#"+href);
});

Fiddle here.

答案 2 :(得分:1)

exec函数返回一个数组,你需要得到数组中的第一项

$("#categories li a").attr('href', function (_, href) {
    var hreflink = (/[^/]*$/.exec(decodeURIComponent(href)))[0];
    return hreflink.replace(/\s/g, '_');
});

演示:Fiddle