我正在使用它:
if (data.match(/([^\/\\]+ )\.(txt|doc)$/i) )
return {filename: RegExp.$1, ext: RegExp.$2};
仅允许(当为真)文件.ext列出。其中,上面是txt和doc。这种方法很有效,直到它只是一个扩展名,例如.DS_store。例如,如果遇到.DS_store则停止测试。如何修改语句以优雅地拒绝仅包含ext的文件名,同时继续处理其他文件名?
由于
答案 0 :(得分:1)
试试这个:(不匹配“.doc”,也不匹配“.doc”,但会解析:'myfile / Regular name.doc'):
data.match(/(?=([\s]*))\1([^\/\\]+)\.(txt|doc)$/i)
(你吞噬了前导空格,但由于名称中的空格有效,你的情况很复杂。但是由于你不能使用possessive quantifiers,你mimic this behavior看起来是正面的 - 提前零宽度断言,包括零,然后是对它的反向引用。)
答案 1 :(得分:0)
试试这个。如果我理解你的问题......
var m = data.split('.')[data.split('.').length-1];
return (m == "doc" || m == "txt") ? true : false;
Here是工作小提琴。