我有一组网址,我想从中提取某个参数的值。
例如:
http://example.com/#!/dp/dp.php?g=4346&h=fd34&kl=45fgh&bl=nmkh
http://example.com/#!/dp/dp.php?h=fd34&g=4346&kl=45fgh&bl=nmkh
http://example.com/#!/dp/dp.php?h=fd34&kl=45fgh&g=4346&bl=nmkh
http://example.com/#!/dp/dp.php?h=fd34&kl=45fgh&bl=nmkh&g=4346
我想使用javascript(regex)来获取参数g
的值。
有人可以帮我这个吗?
答案 0 :(得分:3)
var gMatches = url.match(/[?&]g=[^&]*/);
var g = gMatches[1];
细分:
[?&] # starts with a ? or &
g= # contains g and an equals
[^&]* # contains any character (except &) 0+ times
非常原始但应该有用。
答案 1 :(得分:2)
var url = window.location.href;
getParameter("g=", url, "&");
function getParameter(parameter, buffer, delimiter)
{
var start = buffer.indexOf(parameter);
if (start == -1)
return null;
var data = buffer.slice(start);
if(data.match(delimiter) != null)
var end = data.indexOf(delimiter);
else
var end = data.length;
data = data.slice(0, end);
var eq = data.indexOf("=");
data = data.slice(eq+1);
return data;
}
答案 2 :(得分:1)
使用此功能。
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)')
.exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
称之为
var url = "http://domain.com/#!/dp/dp.php?g=4346&h=fd34&kl=45fgh&bl=nmkh";
var parm = getParameterByName("g");
免责声明:来自http://james.padolsey.com/javascript/bujs-1-getparameterbyname/的 James Padolsey 代码的无耻端口
答案 3 :(得分:1)
试试这个:
var url = window.location.href;
var name = 'g';
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var results = new RegExp("[\\?&]" + name + "=([^&#]*)").exec(url);
if (results != null)
{
var g_url_value = results[1];
}
答案 4 :(得分:1)
var str = 'http://domain.com/#!/dp/dp.php?g=4346&h=fd34&kl=45fgh&bl=nmkh';
var reg = /(\&|\?)g=([^&]+)&?/;
console.log(str.match(reg)[2]);
答案 5 :(得分:1)
var results = new Array;
results = url.match(/[\?\&]g=([^&]*)/);
这应该只包含g的第一个值,而不是整个“g = blah”字符串。