gpt4 book ai didi

javascript - JS 正则表达式替换文件名中的版本号

转载 作者:太空宇宙 更新时间:2023-11-04 16:22:41 29 4
gpt4 key购买 nike

从字符串 css/main.min-1.2.0.css 开始,我尝试在每次版本更新时使用 Gulp 动态替换 HTML 中的版本号。

下面的正则表达式与版本号匹配,但是我需要将版本号与前置字符串相匹配,以确保更新正确。

/\b\d+(?:\.\d+)*\b/

理想情况下,正则表达式应匹配此起始字符串和文件扩展名,并替换版本号 1.0.0

css/main.min-1.0.0.css

编辑

接下来,我正在努力解决为什么以下失败似乎与双引号有关!

var string = '<link rel="stylesheet" href="https://example.com/css/main.min-1.0.0.css">';
string.replace(/css\/main[.]min-(?:\d[.]?)+css$/g, 'css/main.min-1.1.1.css');

最佳答案

感谢评论中的@Guedes,现在的答案如下,替换了整个内容而不仅仅是版本控制。

replace(/css\/main[.]min-(?:\d[.]?)+css$/g, 'css/main.min-' + pkg.version + '.css')

编辑

在下面解决,例如作为一个 gulp 任务供其他人使用。

gulp.task('versioned-paths', function(){
gulp.src(['public/**/*.html', 'public/**/*.php'])
.pipe(replace(/css\/main\.min-(?:\d\.\d\.\d)\.css/g, 'css/main.min-' + pkg.version + '.css'))
.pipe(replace(/js\/env\.min-(?:\d\.\d\.\d)\.js/g, 'js/env.min-' + pkg.version + '.js'))
.pipe(replace(/js\/main\.min-(?:\d\.\d\.\d)\.js/g, 'js/main.min-' + pkg.version + '.js'))
.pipe(gulp.dest('public/'));
});

关于javascript - JS 正则表达式替换文件名中的版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40472058/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com