2014-07-17 56 views
1

我正在使用一种方法来查找代码中的媒体查询。如何避免与匹配“空”

function checkMediaQueries() { 
    var css = cssText; 
    var patt1 = /@media/gi; 
    countMQ = css.match(patt1).length; 

    if (countMQ == 0) { 
     return false; 
    } else { 
     return true; 
    } 
} 

当它找到一些媒体查询时,它一切正常。但是当方法找不到任何东西时,它不会返回任何东西,因为countMQ为null。我知道这个问题,但无法找到解决方案。

我该如何避免这个结果,并让我的方法返回false呢?

THX的帮助

回答

1

取出.length,为NULL有没有length

var countMQ = css.match(patt1); 

和检查truthy,不0

if (countMQ) { 
    return true; 
} else { 
    return false; 
} 

甚至null,如果你wan't更具体地说

if (countMQ === null) { 

或简单

function checkMediaQueries() { 
    return cssText.match(/@media/gi) ? true : false; 
} 

FIDDLE

+0

Thanks.And我如何处理这个当我真正需要匹配的金额是多少?像我想返回其他东西,当我可以找到例如3媒体查询? – Yggdrasil

+0

匹配会返回匹配的数量,所以你可以使用它来代替布尔值 – adeneo

+0

是的,但是当我没有匹配时,我遇到了一个错误。 – Yggdrasil