将greasemonkey通配符转换为正则表达式

发布于 2024-10-21 01:28:16 字数 222 浏览 2 评论 0原文

是否有一个简单的替换函数可以将greasemonkey通配符更改为正则表达式模式?

我想将 'http://www.google.com/*/index.html' 转换为 /^http://www.google.com\/\w\/index .html$/

我希望能够使用 javascript 中的 greasmonkey 通配符测试 url

Is there a simple replace function that will change a greasemonkey wildcard into a regular expression pattern?

I want to convert 'http://www.google.com/*/index.html' into /^http://www.google.com\/\w\/index.html$/

I want to be able to test the url with a greasmonkey wildchar in javascript

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

奈何桥上唱咆哮 2024-10-28 01:28:16

当然,我可能还没有用尽通配符的所有选项(我也没有一个巨大的测试数据库进行试验),但这是我想出的:

String.prototype.toRegExp = function()
{
    var result = this.replace(/([\/\(\)\[\]\.\?])/g,'\\$1');
    result = result.replace('*','.*');
    return new RegExp(result);
}

用法:

var re = "http://www.google.com/*".toRegExp();

Granted I probably haven't exhausted all options of wildcards (nor have I had a huge test database for trials) but here's what I've come up with:

String.prototype.toRegExp = function()
{
    var result = this.replace(/([\/\(\)\[\]\.\?])/g,'\\$1');
    result = result.replace('*','.*');
    return new RegExp(result);
}

Usage:

var re = "http://www.google.com/*".toRegExp();
瑾夏年华 2024-10-28 01:28:16

@include/@exclude 转换为 reg exp 的代码是 这里

但所发生的只是 *.* 替换,并且 [( 等字符被转换到 \[, \(,然后 string 被发送到 new RegExp(string)

如果您使用Scriptish 那么您可以使用 @ 的正则表达式语法include/@excludes,就像这样

// @include /^http:\/\/www.google.com\/\w\/index.html$/i

The code which converts a @include/@exclude to a reg exp is here.

All that happens though is that * is replaced with .* and characters like [, (, etc are converted to \[, \(, then the string is sent to new RegExp(string).

If you used Scriptish then you can use regular expression syntax for the @include/@excludes, like so

// @include /^http:\/\/www.google.com\/\w\/index.html$/i
痴情 2024-10-28 01:28:16

只需看看 油猴的来源

Just have a look at Greasemonkey's source

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文