我有以下jquery片段,可以过滤任何具有正则表达式中提到的特定扩展名的链接。对于这种情况,我想检查href值是否以http://www.xyz.com
开头。怎么办?
$('a:regex(href,\\.(zip|mp\\d+|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*))$').live('click', function (e) {
// do some action..
});
正则表达式帮助函数位于
之下jQuery.expr[':'].regex = function (elem, index, match) {
var matchParams = match[3].split(','),
validLabels = /^(data|css):/,
attr = {
method: matchParams[0].match(validLabels) ?
matchParams[0].split(':')[0] : 'attr',
property: matchParams.shift().replace(validLabels, '')
},
regexFlags = 'ig',
regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g, ''), regexFlags);
return regex.test(jQuery(elem)[attr.method](attr.property));
}
答案 0 :(得分:2)
在我看来,正则表达式中存在错误($
的位置)。但是这里是你如何链接选择器:
$('a[href^=http://www.xyz.com]:regex(href,\\.(zip|mp\\d+|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*)$)').live('click', function (e) {
// do some action..
});