如何从javascript中的url获取参数值? [复制]

Posted

技术标签:

【中文标题】如何从javascript中的url获取参数值? [复制]【英文标题】:how to get the parameter value from the url in javascript? [duplicate] 【发布时间】:2012-03-31 21:30:41 【问题描述】:

可能重复:How can I get a specific parameter from location.search?

我有一个类似下面的网址。

http://localhost/xxx.php?tPath=&pid=37

我想得到 pid=37 但它的名字,因为按时 url 就像上面一样,然后当页面刷新时,url 变成如下所示。

http://localhost/xxx.php?tPath=&action=xxx&pid=37&value=13&fname=aaaa&fone=4321122

所以我想得到 pid=37。它可能是一个函数,我将 pid 作为参数传递给它并返回它的值。

我该怎么做?

【问题讨论】:

看到这个答案:***.com/questions/901115/… 这篇文章的答案可以帮助你。 ***.com/questions/979975/… 【参考方案1】:

查看this 或遵循以下解决方案:

function getParam( name )

 name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
 var regexS = "[\\?&]"+name+"=([^&#]*)";
 var regex = new RegExp( regexS );
 var results = regex.exec( window.location.href );
 if( results == null )
  return "";
else
 return results[1];


var frank_param = getParam( 'pid' );

【讨论】:

这对我有用【参考方案2】:

使用下面的函数

function getParameterValue(name)

name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null ) return "";
else return results[1];

【讨论】:

【参考方案3】:

嗯,已经有三个答案,它们都使用正则表达式。但是正则表达式对于这项工作来说确实是错误的工具。就像有人说的那样,有些人在遇到问题时会想,“我知道,我会使用正则表达式!”现在他们有两个问题。以下是这些答案错误的一些原因:

如果您要查找的“名称”中包含正则表达式字符,则需要对其进行转义,并且如果 URL 在路径部分使用与号(不符合 RFC,但有些人可能还是会这样做)。

如果您要查找的参数包含在正则表达式中有意义的字符(例如,$),它们都会失败。

哦,它们都没有考虑到多个结果(例如,path?foo=bar&foo=baz),这在查询字符串中是完全有效且相对常见的。

这确实是普通字符串函数的工作,如this answer 中所给出。我会在风格上稍微不同地编写函数,但算法是合理的。

【讨论】:

【参考方案4】:

检查这个小工具http://jsfiddle.net/gwB2C/2/

用法:

var up = new URLParser();
var urlObj = up.parse('http://localhost/xxx.php?tPath=&action=xxx&pid=37&value=13&fname=aaaa&fone=4321122');
alert(urlObj.params['fname']); //alerts 'aaaa'

urlObj 的值:

baseURL: "http://localhost/xxx.php"
params:
    action: "xxx"
    fname: "aaaa"
    fone: "4321122"
    pid: "37"
    tPath: ""
    value: "13"

queryString: "tPath=&action=xxx&pid=37&value=13&fname=aaaa&fone=4321122"

【讨论】:

以上是关于如何从javascript中的url获取参数值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Javascript 中的 url 获取 #pg= 值? [复制]

有没有开源方法能直接获取url的参数值

从“GET”参数(JavaScript)中获取值[重复]

如何从 javascript 中的 URL 获取 File() 或 Blob()?

拆分URL字符串以获取javascript中的每个参数值[重复]

vue中如何查看api中完整的url