我有以下数据结构:
var suffixes = ["example", "document", "service", ...];
我想扫描目录并只获取具有给定文件名结构的文件:[0-9a-zA-Z]*\.<a suffix>.txt
其中<a suffix>
可以匹配任何这些后缀。
测试此正则表达式的最佳方法是什么?我可以从字符串数组构建一个正则表达式吗?
答案 0 :(得分:2)
var suffix = 'example';
var string = ' directory name ';
string.match(new RegExp('[0-9a-zA-Z]*\.' + suffix + '.txt'))
或
var suffixes = ["example", "document", "service"].join('|')
string.match(new RegExp('[0-9a-zA-Z]*\.(' + suffixes + ').txt'))
答案 1 :(得分:0)
您可以构建类似
的内容[0-9a-zA-Z]*\.(example|document|service)\.txt
但是,我认为这看起来不太可读。在这种情况下,我会考虑避免正则表达式,以使代码更直接。