Regexp匹配以Javascript结尾的文件

Regexp匹配以Javascript结尾的文件,javascript,regex,Javascript,Regex,我想从列表中的一些文件中获取文件结尾 <a href="myfile.mp4">File 1</a> <a href="http://www.files.com/myfile.ogg">File 2</a> <a href="myfile.mp3">File 3</a> <a href="http://www.site.com/myfile.jpg">File 4</a> 谢谢。请参见 编辑: v

我想从列表中的一些文件中获取文件结尾

<a href="myfile.mp4">File 1</a>
<a href="http://www.files.com/myfile.ogg">File 2</a> 
<a href="myfile.mp3">File 3</a>
<a href="http://www.site.com/myfile.jpg">File 4</a>
谢谢。

请参见

编辑:

var d = document.getElementsByTagName("a"),
    ext, i, j;

for(i = 0, j = d.length; i<j; i++){
            ext = d[i].href.split(".");
            ext = ext[ext.length -1];
            console.log(ext);
 }
var d=document.getElementsByTagName(“a”),
ext,i,j;

对于(i=0,j=d.length;i可以使用jQuery:

  • 获取所有锚元素
  • 对于每个元素,您都可以访问.attr(“href”)值,该值将是您的地址字符串,即“myfile.mp3”
  • 然后可以拆分“.”字符上的字符串,并将tokenArray[tokenArray.length-1]处的值添加到结果列表中
  • 或者,对于香草JS,请尝试:

    function getExtensions(){
        var allAnchorTags = document.getElementsByTagName("a");
        var extensions = new Array();
    
        for(var i = 0; i < allAnchorTags.length; i++){
            var tokenArray = allAnchorTags[i].href.split(".");
            extensions[i] = tokenArray[tokenArray.length-1];
        }  
    
        return extensions;
    }
    
    函数getExtensions(){
    var allAnchorTags=document.getElementsByTagName(“a”);
    var extensions=新数组();
    对于(变量i=0;i

    除了vanilla JS语法外,它的功能与我的算法中描述的相同。试一试

    您可以获得文档中所有链接的扩展,如下所示:

    var endings = [];
    var links = document.getElementsByTagName("a");
    var matches;
    for (var i = 0; i < links.length; i++) {
        if (links[i].href) {
            matches = links[i].href.match(/\.([^\.]+)$/);
            if (matches) {
                endings.push(matches[1]);
            }
        }
    }
    // the array endings contains a list of all link extensions
    
    var endings=[];
    var links=document.getElementsByTagName(“a”);
    var匹配;
    对于(变量i=0;i
    以下是代码的工作版本:


    此处的正则表达式匹配一个句点,后跟字符串末尾的一个或多个非句点字符。括号中的分组允许我们仅添加扩展名,而不使用句点来完成所概述的结果。

    此函数根据需要执行,无需报告重复项并保持w中的顺序发现了文件扩展名

    函数getLinkedFileExtensions(){ 变量i,len=document.links.length,ext=[],exts={}; 对于(i=0;i

    是的,jQuery很棒,但我只能在这种特殊情况下使用core JS。无论如何,谢谢OK,所以我添加了一个使用vanilla JS语法的原始算法示例。@Esailija-我发现任何现实世界的示例都可能比整个文档更窄地限定所需链接的范围,以便OP可以指定从链接数组howev开始的内容er是合适的。我认为这不是OP所要求的解决方案中有趣的部分。他们最想知道的是如何从给定链接中提取扩展。
    function getExtensions(){
        var allAnchorTags = document.getElementsByTagName("a");
        var extensions = new Array();
    
        for(var i = 0; i < allAnchorTags.length; i++){
            var tokenArray = allAnchorTags[i].href.split(".");
            extensions[i] = tokenArray[tokenArray.length-1];
        }  
    
        return extensions;
    }
    
    var endings = [];
    var links = document.getElementsByTagName("a");
    var matches;
    for (var i = 0; i < links.length; i++) {
        if (links[i].href) {
            matches = links[i].href.match(/\.([^\.]+)$/);
            if (matches) {
                endings.push(matches[1]);
            }
        }
    }
    // the array endings contains a list of all link extensions
    
    var ext = [].map.call(document.links, function (a) {
        return (a.href.match(this) || [])[1] || "";
    }, /\.([a-zA-Z0-9]*)$/).filter(String);