2017-02-23 61 views
0

此函数仅适用于参数。用于检索多个查询字符串值的JavaScript函数

function getQueryStringValue(key) { 
    debugger; 
    return unescape(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + escape(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1")); 
}; 

请我需要一个JavaScript函数,可以检索多个查询参数,我需要通过参数作为关键函数的名称。谢谢

在亚历克斯共享链接的功能如下

 

    function getParameterByName(name, url) { 
     if (!url) { 
      url = window.location.href; 
     } 
     name = name.replace(/[\[\]]/g, "\\$&"); 
     var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
      results = regex.exec(url); 
     if (!results) return null; 
     if (!results[2]) return ''; 
     return decodeURIComponent(results[2].replace(/\+/g, " ")); 
    }; 

随着我的网址是这样的:

 



     var url= 'search-results.html?param1=unth?param2=lagos'; 

我把它传递给函数:

 

    var param1 = getParameterByName('param1'); 
    var param2 = getParameterByName('param2'); 

它将param1返回为:luth?param2 = lagos 而不是luth。

这与我分享的功能是一样的问题。 我的问题是一个JavaScript函数检索多个查询参数,但功能只适合一个参数

+1

的可能重复[我怎样才能在JavaScript查询字符串值?(http://stackoverflow.com/questions/901115/how-can-i-get-query -string-values-in-javascript) –

+0

谢谢Alex。我将测试链接中的功能并回复给您。 –

回答

0

你的URL应该是: var url= 'search-results.html?param1=unth&param2=lagos';

在这种情况下功能将正常工作。

var param1 = getParameterByName('param1'); //return unth

var param2 = getParameterByName('param2'); //return lagos

+0

非常感谢SouXin。你是对的。修正案之后,它现在正在工作。 –

相关问题