数组构建正则表达式的多个选项

时间:2014-12-15 15:34:34

标签: javascript arrays regex string

我有以下数据结构:

var suffixes = ["example", "document", "service", ...];

我想扫描目录并只获取具有给定文件名结构的文件:[0-9a-zA-Z]*\.<a suffix>.txt其中<a suffix>可以匹配任何这些后缀。

测试此正则表达式的最佳方法是什么?我可以从字符串数组构建一个正则表达式吗?

2 个答案:

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

但是,我认为这看起来不太可读。在这种情况下,我会考虑避免正则表达式,以使代码更直接。