嗨我有一个自我构建的字符串,但我有一些链接允许你返回一个部分等..现在如何工作是它传递查询字符串中的id。
即
http://localhost:34523/buyhouse?house1=fd524fa0-a6de-e411-80c7-00155d105c00&house2=b6093a35-c2de-e411-80c7-00155d105c00
现在我可以找到我需要在点击按钮时将其剪下来的ID,因为传入了id,但我想删除id之后的所有内容,但之前将所有内容保存在查询字符串中。
即
如果在结果中传递了id "fd524fa0-a6de-e411-80c7-00155d105c00"
,我希望最后是
http://localhost:34523/buyhouse?house1=fd524fa0-a6de-e411-80c7-00155d105c00
因为它将删除该ID之后的所有内容。
有没有一种javascript方式可以做到这一点。
感谢
答案 0 :(得分:1)
首先,您需要找到URL的GET参数,如下所示:
window.location.search.replace("?", "");
以上行获取GET参数,但删除字符串开头的?
。
然后,您可以使用javascript' split()
函数将参数拆分为数组:
var getParameters = window.location.search.replace("?", "").split('&');
现在你有一个这样的阵列:
getParameters['house1=fd524fa0-a6de-e411-80c7-00155d105c00', 'house2=b6093a35-c2de-e411-80c7-00155d105c00'];
您现在可以使用这些数组值来创建链接:
window.location.href = 'http://localhost:34523/buyhouse?'+getParameters[0];
这会将您重定向到:
http://localhost:34523/buyhouse?house1=fd524fa0-a6de-e411-80c7-00155d105c00
答案 1 :(得分:0)
<script>
function myFunction(str, p) {
var head = str.split("?");
var res = head[1].split("&");
var url = head[0]+"?"+res[p];
return url;
}
}
</script>
str是您的完整网址:
str =“// localhost:34523 / buyhouse?house1 = fd524fa0-a6de-e411-80c7-00155d105c00&amp; house2 = b6093a35-c2de-e411-80c7-00155d105c00”;
“p”是您需要的ID的位置。
答案 2 :(得分:0)
我能想到的最简单的方法是使用indexOf()
来查找id的开始位置,为其添加id长度,然后使用子字符串。
function cutOffAfter(mainString, delimiter) {
var delimiterIndex = mainString.indexOf(delimiter);
if (delimiterIndex != -1) { // If delimiter was found
var endingIndex = delimiterIndex + delimiter.length;
mainString = mainString.substring(0, endingIndex);
}
return mainString;
}