我是JavaScript的新手,我需要帮助解决问题。
我有以下网址:
http://localhost/solo04/index.php?route=checkout/checkout#shipping-method
我想获取网址的一部分(route = checkout / checkout)如何做到这一点?
答案 0 :(得分:2)
我想把它扔掉,因为我认为这里没有提到过。
您也可以使用新的 API来避免我在这里找到的任何regex
或任何字符串操作。
但这是相对较新的,因此在旧浏览器中对此的支持可能会受到限制。
例如:
var myURL = new URL('http://localhost/solo04/index.php?q=somequery');
console.log(myURL);
这将为您提供一个应该有path
,hostname
,search
等的对象。
答案 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)
最简单的方法是使用regex
或split
:
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);
答案 3 :(得分:0)
var str1 = "http: //localhost/solo04/index.php? Route = checkout / checkout # shipping-method";
var n = str1.lastIndexOf("?")+1;
alert(str1.substr(n));
&#13;