javascript - 在 JavaScript 中是否有类似 glob 但用于 URL 的东西?

标签 javascript regex url glob

我需要将 URL 与字符串模式进行匹配,但我想避免使用 RegExp 以保持模式简单易读。

我希望能够拥有像 http://*.example.org/* 这样的模式,它应该等同于 /^http:\/\/。 *\.example.org\/.*$/ 在正则表达式中。该 RegExp 还应该说明为什么我想让它更具可读性。

基本上,我想要适用于 URL 的类似 glob 的模式。问题是:普通的 glob 实现将 / 视为分隔符。这意味着,http://foo.example.org/bar/bla 不符合我的简单模式。

因此,可以忽略斜杠的 glob 实现会很棒。有这样的东西或类似的东西吗?

最佳答案

对于类似 glob 的行为,您可以从这样的函数开始:

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

关于javascript - 在 JavaScript 中是否有类似 glob 但用于 URL 的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558442/

相关文章:

javascript - 如何扩展 JQuery 的 ajax did() 方法?

javascript - response.writeHead() 方法中 {'Content-Type:' :'text/plain' } 的数据类型是什么?

javascript - jQuery 集合的 HTML

java - 为什么 java String.replaceAll 正则表达式删除了它不应该删除的部分字符串?

angularjs - 是否有一种内置方法可以在没有任何查询参数的情况下获取当前 URL?

php - 在标签存储在数据库中的网站(如 Facebook)上进行图像标记

javascript删除数字输入中的重复小数点

java - Java 中的正则表达式反向 LookBehind

email - 电子邮件 mailto 链接是有效的 URL 吗?

html - 编码 URL 中的双大于符号 (>>) 会生成 403 禁止错误