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

Javascript 如何获取URL的一部分并将用户重定向到包含该部分URL的URL?,javascript,Javascript,我想创建一个运行javascript的书签。 它将从我使用的游戏论坛中获取一部分URL,并将用户带到它的编辑页面 帖子的url可以是这样的,例如- 你看到那张贴了吗?我想获取该号码并将用户重定向到以下位置: http://www.roblox.com/Forum/EditPost.aspx?PostID=[数字在这里] 所以我想得到url的一部分,并把它放在PostID中 有人能帮上忙吗?使用Javascript: document.location = document.location.hr

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

帖子的url可以是这样的,例如-

你看到那张贴了吗?我想获取该号码并将用户重定向到以下位置: http://www.roblox.com/Forum/EditPost.aspx?PostID=[数字在这里]

所以我想得到url的一部分,并把它放在PostID中

有人能帮上忙吗?

使用Javascript:

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

这是您的书签:

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

URL的查询字符串可通过
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;
}
var query = getQueryString();

query.PostID; // 78212279
现在,在讨论中的页面上使用它,我们可以在查询字符串中获得
PostID

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;
}
var query = getQueryString();

query.PostID; // 78212279

可以使用正则表达式

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

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

谢谢!我所需要的就是这个。