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(pair[0] == variable){return pair[1];}
}
return(false);
}
用法
示例 URL
http://www.example.com/index.php?id=1&image=awesome.jpg
调用getQueryVariable("id")– 将返回“1”。
调用getQueryVariable("image")– 将返回“awesome.jpg”。
Requests = {
QueryString : function(item){
var svalue = location.search.match(new RegExp(“[\?\&]” + item + “=([^\&]*)(\&?)”,”i”));
return svalue ? svalue[1] : svalue;
}
}
//用法
Requests.QueryString(“id”);
很棒的代码片段,但将这段代码中的弯引号更改为双引号。
很棒,简洁的代码片段。它在我的使用场景中有效。考虑到网络上数据的变化,肯定存在一些边缘情况会导致它失效,但到目前为止,这块已有7年半历史的黄金仍然为我们服务良好!
不错!谢谢。
很棒的工作,这是一段非常棒的代码!一如既往,继续加油!
你说得对
不错,非常有用,谢谢!!
谢谢 Chris,非常有用的脚本。今天就要用到它 :D
太棒了!!!!!!!
我可以在我的网站上移除 .html 扩展名吗?我的网站使用基于 Windows 的主机。
我不知道服务器是否安装了 Isapi_rewrite。
此致
我认为该行 = return (false) 如果您的 URL 获取多个变量,则会产生错误。false 可能会中断循环并仅返回 URL 中的第一个变量..
我认为应该删除该行..
此致,
附注:如果我错了,请见谅 :)
我认为您可能误读了括号。在 for 循环搜索完所有
vars
(名称-值对)并且没有找到variable
后,此函数返回 false。太棒了!非常感谢!
嗨,我的朋友们,如果我说英语请不要见怪,但我不会说法语,所以
我在我创建的一个脚本中遇到了这种情况
page.html?nom=28/09/1986&from=hossa&too=hisok
我想获取变量 nom、from 和 too 的名称
我尝试了许多脚本,但它们对我不起作用
请您告诉我如何在 javascript 中实现它吗?
非常感谢
我认为这就是这篇文章要讨论的内容。
只需调用上面定义的函数。
getQueryVariable("nom");
– 将返回“28/09/1986”。getQueryVariable("from");
– 将返回“hossa”。getQueryVariable("too");
– 将返回“hisok”。如果要复制粘贴,我想在 CoffeeScript 中使用它,这对我有用
getQueryVariable = (variable) ->
query = window.location.search.substring(1)
制表符乱了
添加了另一个 if 语句来检查参数中的空格字符“%20”
}
糟糕,我忘记了“!= -1”,抱歉。以下是正确的代码
}
有没有人有实际的表单链接,其中实现了类似的东西,我可以作为示例查看?抱歉,我对 javascript 不是很了解,在弄清楚如何设置它时遇到了很多麻烦。我认为我做了一些非常基础的错误,但我无法弄清楚是什么。
嗨,Kat。我创建了一个 Codepen 来实现上面的代码。
http://codepen.io/anon/pen/ympzk?fname=kat
嗨,Chris,
如果我没记错的话,需要对参数进行 URL 解码。
在此处查看此解决方案:http://stackoverflow.com/a/901144
我正在通过 URL 传递查询(http://www.mywebsite.com/appointment-map.aspx?search=33612),我想在以下内容(urlsearch)中使用该查询对象,但似乎无法使其工作。
除了 Robert Galindo 的代码之外
现在我们可以在第一个 %20 之后获取更多数据,我的意思是,所有包含空格的数据,例如
uri.html?data=more%20than%20one%20space
我在 stackoverflow.com 上找到了关于“split”和“regex”速度的信息
此致。
此外,正如 Relfor 所说,使用 decodeUriComponent 我们无需查找空格(%20)或其他符号(如重音符号)。更少的代码行,更好的结果
此致。
很棒的作品!愿上帝保佑我的朋友
一种函数式方法 (:P)
更好的是,不要为每个查询字符串参数都执行一次工作。
如何将此函数与 if/else 结合使用?
示例
您有这个 URL
www.domain.com?id=1234&img=test.jpg
条件
如果 id=xxxx,则执行 blablabla,否则执行其他操作。
我可以使用什么脚本来声明该条件?
请帮忙。谢谢…
我需要您帮助检查 URL 中的最后 3 个字符。
例如
http://www.google.com
必须检查最后 3 个字符,这些字符从点(.) 开始。
例如
http://www.domainname.xxx
如果最后 3 个字符错误,则应跳转到任何警报消息页面。请帮助我
谁能解释一下如何使用 jquery 重写 url。
描述
我想通过删除其中的文件夹路径来重写 url。
目前我正在使用 asp.net 路由,这是一个成本高昂的过程,因此如果有人能为此提供解决方案,将非常有帮助。
例如:products/cloths/jeans.aspx 必须重写为 jeans.aspx
提前感谢。
我实现了原始代码,如果变量存在,id 确实会返回 url 变量值,否则它会返回 false。变量不存在时返回的 false 不是字符串值,而是我假设的 javascript 布尔值?我的问题是如何测试 false 返回值,然后采取操作?我想验证是否进行了选择,该选择在查询字符串中传递了一个值,如果没有,则向用户显示一条消息。感谢任何帮助。
大家好!代码很棒!如果我在后台页面运行此代码,您能否告诉我如何获取当前选项卡的 URL?如果我想从上下文菜单调用此代码,有什么想法吗?
您可以使用以下方法获取表示查询参数的项目数组
array = location.search.match(/\w+(.=)?\w*/gi)
您可以得到类似的东西,并且可以非常轻松地映射到对象
[“app_id”, “123”, “appcode”, “123”]
这可能是一个愚蠢的问题,但我注意到
return (false)
这行代码这与更常见的
return false
(无括号)有什么区别?代码不错,但如果您正在查找第一个元素,它不起作用。
调用 getQueryVariable(“id”) – 应该返回“1”。但它没有。
我应该澄清一下。我修改了函数以接受 url 字符串。
function getQueryVariable(url, variable)
{
var query = url;
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
谢谢!!
这是我正在使用的简单正则表达式代码
来源:http://mycodingtricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/
很棒的工作!但是如果我在下面的 URL 中有这样的查询字符串呢?
这将发送“John”而不是预期的“John & James”……只是一个想法。
如果您的值中包含“&”,则您的值格式错误。您必须对其进行 URL 编码。在 url 查询中,“&”表示开始下一个变量。
感谢您的帮助(
如果我想返回默认值怎么办?
例如
http://www.example.com/index.php?id=1&image=awesome.jpg
调用 getQueryVariable(“id”) – 将返回“1”。
调用 getQueryVariable(“image”) – 将返回“awesome.jpg”。
如果
http://www.example.com/index.php
我仍然希望返回“id”值 =“预定义值”
你好,
谁能向我展示如何在 html 中应用它?我对 JS 几乎没有经验。我尝试了数十次迭代并检查了许多网站,我已束手无策。
我 URL 末尾的查询字符串是 ?foo=jim。我在文档头部内部有 JS 函数。
我需要将“jim”插入为隐藏输入字段的值。以下是为使此功能正常工作而尝试的众多迭代之一。
谁能告诉我我在这里到底哪里错了?
非常感谢,
Amber
你好,Amber,
我遇到了您在这篇文章中提到的相同问题,我想知道您是否已经找到了解决方案?
@joe – 只需更改您的行
var query = url; </div>
至
var query = url.split('?')[1];
这将分离出 url 的查询部分。
太棒了。
我之前已经有一个 youtube url,只需要视频 ID。
我发现了这个非常好的解决方案
创建一个链接,设置 href,现在您也可以使用“location.search”。
所以我只是将其添加到上面的函数中。
这应该也适用于旧版浏览器。我自己没有测试过,但应该可以一直使用到 IE 5.5
此技术仅在完全按照描述设置时才返回“false”。
链接设置:/test.html?id=1&image=awesome.jpg
非常感谢!这太棒了
我从 MDN 获取了这个:https://mdn.org.cn/en-US/docs/Web/API/URLSearchParams
window.location 对于标签中的参数未设置。
假设您只需要传递没有名称的参数,就像函数调用一样。
在 HTML 中
然后,在 JavaScript 中
现在 args 包含数组 [‘a’,’b’],假设同步脚本调用。
用法
URL = https://css-tricks.cn/snippets/javascript/get-url-variables/?a=b&c=&d
urlParams() // {a: ‘b’, c: ”, d: ”}
urlParams(‘a’) // ‘b’
urlParams(‘b’) // null
urlParams(‘c’) // ”
urlParams(‘d’) // ”
仔细考虑了一下,发现这在实现相同结果的同时更加简洁。