通过javascript捕获URL的特定部分(如果存在)

时间:2013-11-09 00:13:35

标签: javascript regex

是否可以使用javascript捕获此网址的“64515”部分?

https://someurl.com/somepage/index.html?yourId=64515

我在考虑为用户收集当前网址,然后运行正则表达式。这是最好的方法,如果是这样,怎么样?我担心,如果我这样做,如果你的yourID部分不存在,可能会导致错误。

2 个答案:

答案 0 :(得分:1)

这不仅是可能的,而且非常简单,实际上非常普遍。您要求的是网址的查询字符串 - “?”后面的网址部分是查询字符串。现在,“yourID”就像一个变量,64515的值附加到该变量。这很容易通过代码在服务器端进行,但也应该在客户端也很容易通过javascript进行。不要打扰正则表达式 - 它们可以工作,但不是最好的方法。你可以看看使用here看到的那种东西。

正则表达式似乎很好,但效率非常低。一个想法也可能是使用jQuery,但这可能是过度的。

答案 1 :(得分:0)

重复How can I get query string values in JavaScript?

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
getParameterByName(window.location.href);