我在javascript中有两个数组,一个用于我的白名单,另一个用于黑名单。我正在使用它来查看是否应该允许访问URL。数组填充了正则表达式模式以匹配网址。为简单起见,我将使用这些数组作为示例:
var white = [
/https?:\/\/github\.com/,
/https?:\/\/github\.com\/username\/repo/
];
var black = [
/https?:\/\/github.com\/username/
];
我的功能目前看起来像这样:
function can_visit(url){
//return true if url not in white or black, or white rule is most specific.
//return false if black rule is most specific.
}
对于github.com
和github.com/user/repo
,这应该返回true,但返回false github.com/user/
。一个列表中的规则可以覆盖另一个列表中的规则,只要它们更具体。
提前致谢。