Regex sizzle选择器可以计算正则表达式吗?

Regex sizzle选择器可以计算正则表达式吗?,regex,sizzle,Regex,Sizzle,我需要选择一个特定的URL格式的链接我可以使用sizzle根据正则表达式计算链接的href属性吗? 例如,我可以这样做: var arrayOfLinks = Sizzle('a[HREF=[0-9]+$]'); 要在URL以数字结尾的页面上创建所有链接的数组,请尝试一下。我尝试将Kobi链接到的jQuery正则表达式选择器转换为Sizzle选择器扩展。似乎有效,但我还没有做过很多测试 Sizzle.selectors.filters.regex = function(elem, i, mat

我需要选择一个特定的URL格式的链接我可以使用sizzle根据正则表达式计算链接的href属性吗?

例如,我可以这样做:

var arrayOfLinks = Sizzle('a[HREF=[0-9]+$]');

要在URL以数字结尾的页面上创建所有链接的数组,请尝试一下。我尝试将Kobi链接到的jQuery正则表达式选择器转换为Sizzle选择器扩展。似乎有效,但我还没有做过很多测试

Sizzle.selectors.filters.regex = function(elem, i, match){ 
    var matchParams = match[3].split(',', 2);
    var attr = matchParams[0];
    var pattern = matchParams[1];
    var regex = new RegExp(pattern.replace(/^\s+|\s+$/g,''), 'ig');
    return regex.test(elem.getAttribute(attr));
};
在本例中,您的示例将编写为:

var arrayOfLinks = Sizzle('a:regex(href,[0-9]+$)');

我试过了,但是没有足够的时间来理解api(看起来没有太多文档)。我认为它本机不支持in,但您可能可以编写一个插件,比如jQuery-@Kobi。谢谢你花时间看这个。不幸的是,我不太可能在这种情况下添加jQuery和插件。您应该使用
match[3]。split(',',,2)
@Gumbo,谢谢。在jQuery选择器上移植时没有注意到这一点。很酷的解决方案。关于一个半相关的问题,我想知道是否有办法获得regexp结果而不是节点。也许它可以把它塞进匹配对象中?还是在jQuery中对jQuery结果进行查询?