jQuery:将文件类型类添加到任何文件类型的链接

Mar*_*tin 8 javascript regex jquery

$("a[href $='.pdf']" ).addClass("linkIconPDF");
$("a[href *='.pdf#']").addClass("linkIconPDF");
$("a[href *='.pdf;']").addClass("linkIconPDF");
$("a[href *='.pdf?']").addClass("linkIconPDF");

$("a[href $='.txt']" ).addClass("linkIconTXT");
$("a[href *='.txt#']").addClass("linkIconTXT");
$("a[href *='.txt;']").addClass("linkIconTXT");
$("a[href *='.txt?']").addClass("linkIconTXT");
Run Code Online (Sandbox Code Playgroud)

到目前为止一直很好,但如何简化以匹配任何文件类型?

是否可以进行一些正则表达式分组以匹配所有可能的文件类型?

$("a[href $='.([a-zA-Z0-9]{2,4})']" ).addClass("linkIcon$1");
Run Code Online (Sandbox Code Playgroud)

测试脚本:http://jsfiddle.net/k2jqn/

Asa*_*din 6

$("a").each(function(){
    var match = this.href.match(/\.([a-zA-Z0-9]{2,4})([#;?]|$)/);
    if(match){
        $(this).addClass("linkIcon" + match[1]);
    }
});
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/k2jqn/4/