如何获取URL的一部分并将用户重定向到包含该URL部分的URL?

时间:2012-09-16 09:03:31

标签: javascript

我想创建一个运行javascript的书签。 它将从我使用的游戏论坛获取URL的一部分,并将用户带到其编辑页面。

帖子的网址可能是这样的,例如 - http://www.roblox.com/Forum/ShowPost.aspx?PostID=78212279

你看到PostID位了吗?我想获取该号码并将用户重定向到此: http://www.roblox.com/Forum/EditPost.aspx?PostID=[NUMBER GOES HERE]

所以我想获取网址的一部分并将其放在PostID中。

任何人都可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

使用Javascript:

document.location = document.location.href.replace('ShowPost', 'EditPost');

答案 1 :(得分:0)

这是您的书签:

<a href="javascript:location.href='EditPost.aspx'+location.search" onclick="alert('Drag this to your bookmarks bar');">Edit Post</a>

答案 2 :(得分:0)

网址的查询字符串可通过window.location.search获得。因此,如果您在页面http://www.roblox.com/Forum/ShowPost.aspx?PostID=78212279

var query = location.search; // ?PostID=78212279

现在我们需要将查询字符串拆分为键值对。每个键值对由&分隔,并且对中的每个键和值由=分隔。我们还需要考虑到键值对也在查询字符串中编码。这是一个函数,它将为我们处理所有这些并返回一个对象,其属性表示查询字符串中的键值对

function getQueryString() {
    var result = {},
        query= location.search.substr(1).split('&'),
        len = query.length,
        keyValue = [];

    while (len--) {
        keyValue = query[len].split('=');

        if (keyValue[1].length) {
            result[decodeURIComponent(keyValue[0])] = decodeURIComponent(keyValue[1]);
        }
    }
    return result;
}

现在在相关页面上使用此功能,我们可以在查询字符串中获取PostID

var query = getQueryString();

query.PostID; // 78212279

答案 3 :(得分:0)

您可以使用正则表达式。

var re = /^https?:\/\/.+?\?.*?PostID=(\d+)/;

function getPostId(url) {
    var matches = re.exec(url);
    return matches ? matches[1] : null;
}

<强> DEMO