使用JavaScript

时间:2017-06-08 14:07:41

标签: javascript jquery

我是JavaScript的新手,我需要帮助解决问题。

我有以下网址:

http://localhost/solo04/index.php?route=checkout/checkout#shipping-method

我想获取网址的一部分(route = checkout / checkout)如何做到这一点?

4 个答案:

答案 0 :(得分:2)

我想把它扔掉,因为我认为这里没有提到过。 您也可以使用新的Lots of nodes API来避免我在这里找到的任何regex或任何字符串操作。

但这是相对较新的,因此在旧浏览器中对此的支持可能会受到限制。

例如:

var myURL = new URL('http://localhost/solo04/index.php?q=somequery');
console.log(myURL);

这将为您提供一个应该有pathhostnamesearch等的对象。

答案 1 :(得分:1)

您可以创建一个超链接元素来完成此操作,只需像平常一样创建它,但不要将其附加到DOM:

var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";

parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port;     // => "3000"
parser.pathname; // => "/pathname/"
parser.search;   // => "?search=test"
parser.hash;     // => "#hash"
parser.host;     // => "example.com:3000"

如果您需要查询字符串,可以使用以下内容解析它:

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
    console.log('Query variable %s not found', variable);
}

为了获得特定的变量。

归功于jlong​​&amp; Tarik的优秀创意。

答案 2 :(得分:1)

最简单的方法是使用regexsplit

url = "http://localhost/solo04/index.php?Route=checkout/checkout#shipping-method";

lastPart = url.split('?')[1]; // grabs the part on the right of the ?

console.log(lastPart);

列出了更多变种How to get the value from the GET parameters?

答案 3 :(得分:0)

&#13;
&#13;
    var str1 = "http: //localhost/solo04/index.php? Route = checkout / checkout # shipping-method";
    var n = str1.lastIndexOf("?")+1;
    alert(str1.substr(n));
&#13;
&#13;
&#13;