我需要将URL与字符串模式匹配,但我想避免使用RegExp来保持模式的简单性和可读性。
我希望能够拥有像http://*.example.org/*
这样的模式,它们应该等同于RegExp中的/^http:\/\/.*\.example.org\/.*$/
。 RegExp还应该说明我为什么要让它更具可读性。
基本上我喜欢用于URL的类似于glob的模式。问题是:普通的glob实现将/
视为分隔符。这意味着,http://foo.example.org/bar/bla
与我的简单模式不匹配。
所以,一个可以忽略斜杠的glob的实现会很棒。有这样的东西或类似的东西吗?
答案 0 :(得分:4)
你可以从像这样的函数开始,用于类似行为的行为:
function glob(pattern, input) {
var re = new RegExp(pattern.replace(/([.?+^$[\]\\(){}|\/-])/g, "\\$1").replace(/\*/g, '.*'));
return re.test(input);
}
然后将其称为:
glob('http://*.example.org/*', 'http://foo.example.org/bar/bla');
true
答案 1 :(得分:2)