首页 > 解决方案 > RegEx 包含除 foo.js 和 bar.js 之外的所有 JavaScript 文件

问题描述

有人可以帮我处理正则表达式吗?

  1. 它应该包括所有 JavaScript 文件,除了foo.[contenthash].jsbar.[contenthash].js.

  2. 它应该只跳过文件名开头出现foo或的文件。bar

  3. 它不应该跳过部分文件名,即fo.[contenthash].js(请参阅 中的缺失ofoo不应该被跳过。

有人可以帮忙吗?提前致谢。

标签: javascriptregex

解决方案


您可以在开始时使用带有锚的负前瞻:

^(?!foo|bar).*\.js$


JavaScript可能是:

let files = ['test.12345.js', 'foo.12345.js', 'bar.12345.js'];

let regex = /^(?!foo|bar).*\.js$/

files.forEach(function(file) {
    console.log(regex.test(file));
});

请参阅regex101.com 上 的附加演示。


推荐阅读