如何通过javascript检查是否存在查询字符串值

时间:2009-08-21 21:52:24

标签: javascript

如何使用javascript / jquery检查查询字符串中是否包含q =?

11 个答案:

答案 0 :(得分:99)

您还可以使用正则表达式:

/[?&]q=/.test(location.search)

答案 1 :(得分:84)

var field = 'q';
var url = window.location.href;
if(url.indexOf('?' + field + '=') != -1)
    return true;
else if(url.indexOf('&' + field + '=') != -1)
    return true;
return false

答案 2 :(得分:14)

使用URL

url = new URL(window.location.href);

if (url.searchParams.get('test')) {

}

编辑:如果你对兼容性感到遗憾,我强烈建议https://github.com/medialize/URI.js/

答案 3 :(得分:10)

简单的javascript代码示例,它按字面意思回答您的问题:

return location.search.indexOf('q=')>=0;

普通的javascript代码示例,它尝试查找q参数是否存在以及是否具有值:

var queryString=location.search;
var params=queryString.substring(1).split('&');
for(var i=0; i<params.length; i++){
    var pair=params[i].split('=');
    if(decodeURIComponent(pair[0])=='q' && pair[1])
        return true;
}
return false;

答案 4 :(得分:5)

另一种变体,但与Gumbos解决方案几乎相同:

var isDebug = function(){
    return window.location.href.search("[?&]debug=") != -1;
};

答案 5 :(得分:3)

此函数可帮助您从JS中的URL获取参数

sys.exit()

答案 6 :(得分:3)

试试这个

y=y_train.ravel()

JSFiddle:https://jsfiddle.net/codemirror/zj4qyao2/

答案 7 :(得分:3)

在现代浏览器中,借助URLSearchParams界面,这变得更加容易。这定义了许多实用程序方法来处理URL的查询字符串。

假设我们的网址为https://example.com/?product=shirt&color=blue&newuser&size=m,则可以使用window.location.search来获取查询字符串:

const queryString = window.location.search;
console.log(queryString);
// ?product=shirt&color=blue&newuser&size=m

然后您可以使用URLSearchParams解析查询字符串的参数:

const urlParams = new URLSearchParams(queryString);

然后您可以在结果上调用其任何方法。

例如,URLSearchParams.get()将返回与给定搜索参数关联的第一个值:

const product = urlParams.get('product')
console.log(product);
// shirt

const color = urlParams.get('color')
console.log(color);
// blue

const newUser = urlParams.get('newuser')
console.log(newUser);
// empty string

您可以使用URLSearchParams.has()检查某个参数是否存在:

console.log(urlParams.has('product'));
// true

console.log(urlParams.has('paymentmethod'));
// false

要进一步阅读,请单击here

答案 8 :(得分:0)

我之前用this library做了很好的事情。具体做法是: -

qs.contains(name)
    Returns true if the querystring has a parameter name, else false.

    if (qs2.contains("name1")){ alert(qs2.get("name1"));}

答案 9 :(得分:0)

这应该有所帮助:

function getQueryParams(){
    try{
        url = window.location.href;
        query_str = url.substr(url.indexOf('?')+1, url.length-1);
        r_params = query_str.split('&');
        params = {}
        for( i in r_params){
            param = r_params[i].split('=');
            params[ param[0] ] = param[1];
        }
        return params;
    }
    catch(e){
       return {};
    }
}

答案 10 :(得分:0)

更新已接受的答案,您可能应该只返回 if 条件,而不是明确返回 true/false:

const field = 'q';
const url = window.location.href;
return url.indexOf(`?${field}=`) !== -1 || url.indexOf(`&${field}=`) !== -1;

我插入了字符串,但您也可以像接受的答案一样将它们加在一起。