从url中删除最后一个元素

时间:2012-06-04 19:00:31

标签: javascript jquery

我需要从跨度中删除网址的最后一部分..

我有

<span st_url="http://localhost:8888/careers/php-web-developer-2"
st_title="PHP Web Developer 2" class="st_facebook_large" displaytext="facebook"
st_processed="yes"></span></span>

我需要接受st_url并从中移除php-web-developer-2,因此它只是http://localhost:8888/careers/

但我不知道该怎么做。 php-web-developer-2并不总是那样,但它不会有任何/。它始终是-分隔的字符串。

任何帮助!! ??

7 个答案:

答案 0 :(得分:16)

就这么简单:

var to = url.lastIndexOf('/');
to = to == -1 ? url.length : to + 1;
url = url.substring(0, to);

答案 1 :(得分:10)

$('span').attr('st_url', function(i, url) {
    var str = url.substr(url.lastIndexOf('/') + 1) + '$';
    return url.replace( new RegExp(str), '' );
});

<强> DEMO

答案 2 :(得分:10)

使用它。

$('span').attr('st_url', function(i, url) {
    var to = url.lastIndexOf('/') +1;

    x =  url.substring(0,to);
    alert(x);
})​

您可以看到Demo

答案 3 :(得分:3)

您可以使用正则表达式来解析“最后一段网址”:

var url="http://localhost:8888/careers/php-web-developer";

var baseurl=url.replace(
    new RegExp("(.*/)[^/]+$"),
    "$1") );

RegExp基本上说:“匹配任何内容,然后是斜杠,然后是所有非斜杠,直到字符串结尾”。

replace函数接受匹配的部分,并将其替换为字符串的“nothing,then a slash”部分。

RegexBuddy提供了大量关于这一切的信息。

答案 4 :(得分:2)

您可以在此处查看:http://jsfiddle.net/xKxLR/

var url = "http://localhost:8888/careers/php-web-developer-2";
var regex = new RegExp('/[^/]*$');
console.log(url.replace(regex, '/'));

答案 5 :(得分:0)

首先,您需要解析标记。接下来尝试提取作为您的URL的st_url值。然后使用提取的url的最后一个字符循环并省略它们,直到看到'/'。这就是你应该如何提取你想要的东西。记住这一点并尝试编写代码。

答案 6 :(得分:0)

这是一个稍微简单的方法:

url = url.slice(0, url.lastIndexOf('/'));