Regexp以匹配以Javascript结尾的文件

Regexp to match file ending with Javascript

本文关键字:文件 结尾 Regexp Javascript      更新时间:2023-09-26

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

<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>

基本上,文件的结尾可以是任何东西,字符串可以包含不止一个"."。所以我只需要获取结尾。

我想得到一个看起来像:

mp4
ogg
mp3
jpg

谢谢。

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

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

以下是代码的工作版本:http://jsfiddle.net/jfriend00/XHKaT/

这里的正则表达式匹配字符串末尾的句点和一个或多个非句点字符。带括号的分组允许我们在没有实现您概述的结果的周期的情况下只增加扩展。

此函数根据需要执行,无需报告重复项,也无需维护文件扩展名的查找顺序。

function getLinkedFileExtensions() {
  var i, len=document.links.length, ext=[], exts={};
  for (i=0; i<len; i++) {
    var a = document.links[i];
    if (a.href && a.href.match(/'.([A-Za-z0-9]{1,4})$/)) {
      var x = RegExp.$1;
      if (!(x in exts)) {
        exts[x] = true;
        ext.push(x);
      }
    }
  }
  return ext;
}
var ext = [].map.call(document.links, function (a) {
    return (a.href.match(this) || [])[1] || "";
}, /'.([a-zA-Z0-9]*)$/).filter(String);

http://jsfiddle.net/hZ9cU/

您可以使用jQuery来:

  1. 获取所有锚点元素
  2. 对于每个元素,您都可以访问.attr("href")值,该值将是您的地址字符串,即"myfile.mp3"
  3. 然后,您可以将字符串拆分为"."字符,并将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;
}

除了使用普通JS语法之外,它的操作与我的算法中描述的相同。试试

请参见馈线

var ext = a.href.split(".");
ext = ext[ext.length -1];
console.log(ext);

编辑:

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);
 }
相关文章: