在Javascript中使用RegExp查找文件序列

时间:2016-06-27 09:27:26

标签: javascript regex filenames

我有一个简单的问题:

如何在Javascript中使用RegExp查找与此过滤器匹配的字符串: *[0-9].png以过滤掉文件序列。

例如:

bird001.png
bird002.png
bird003.png

abc_1.png
abc_2.png

应忽略abc_1b.pngabc_abc.png等字符串 我将在getFiles函数中使用它。

var regExp = new RegExp(???);
var files = dir.getFiles(regExp);

提前致谢!

编辑:

如果我有一个已定义的字符串,那么就说

var beginningStr = "bird";

如何检查字符串是否与过滤器匹配

beginningStr[0-9].png

?理想情况下,startsString没有区分大小写。这样过滤器就会允许Bird01和bird02。

再次感谢!

4 个答案:

答案 0 :(得分:1)

如果我理解正确,你需要一个匹配文件的正则表达式:

  1. 以字母a-zA-Z
  2. 开头
  3. 可选择跟随单_
  4. 后跟一个或多个数字
  5. .png
  6. 结尾

    正则表达式为[a-zA-Z]_{0,1}+\d+\.png

    您可以尝试在线正则表达式构建器,它可以立即解释您所写的内容。

答案 1 :(得分:1)

[0-9]后跟.png所有的任何内容:

/^.*[0-9]\.png$/i

或者只是没有开始(正则表达式会自己找到它):

/[0-9]\.png$/i

答案 2 :(得分:0)

如果我理解正确,

var re = /\s[a-zA-Z]*[0-9]+\.png/g;
var filesArr = str.match(re);
filesArr.sort();// you can use own sort function

请指定什么是dir变量

答案 3 :(得分:0)

要获取没有排序的PNG文件? 在一份声明中:

var files = dir.getFiles(/.*[^\d]+\.png$/i);

[^\d]+匹配非数字字符。

仅进行测序:

var files = dir.getFiles(/.*\d+\.png$/i);