我不理解我的JavaScript函数的行为。
有一个简单的函数可以检查URL是否与RegExp匹配。它返回一个布尔值。
/**
* Check the url is matching the ProviderURL.
*
* @return {boolean} ProviderURL as RegExp
*/
this.matchURL = function(url) {
return !(this.matchException(url)) && urlPattern.test(url);
};
但是,当我调用此函数时,它在if条件中返回false,但在console.log中返回true。
console.log(providers[i].matchURL(request.url)); //true
if(providers[i].matchURL(request.url)) {
console.log("never displayed.");
}
我现在已经修复了#34;先前的if条件存在此问题。不过,我想知道为什么程序会这样。
let match = providers[i].matchURL(request.url);
//really weird method
if(match == providers[i].matchURL(request.url));
if(match)
{
result = removeFieldsFormURL(providers[i], request);
}
URLPATTERN:
/**
* Add URL pattern.
*
* @require urlPatterns as RegExp
*/
this.setURLPattern = function(urlPatterns) {
urlPattern = new RegExp(urlPatterns, "mgi");
};