js从一个不规范的字符串中截取字符串

来个人帮忙处理一下这个截取字符串的问题,太麻烦了,一点规范都没有还要前端处理自动填充到版本号的输入框展示,快给人整麻了

问题描述:有下面四个文件名的举例,需要截取版本号的字符串,截取字符 V 或者 v 后面两个 . 或者两个 _ 前后的数字,将 . 或者 _ 统一改成 . 并在截取的字符串前加上V

SR3511_300_v1_0_10_20230320.bin
SR3611_V1.0.9_2022_12_16.bin
SR3611_V01.07.9_2022_12_16.bin
SR3611_V10_02_10__2022_12_16.bin

结果举例

SR3511_300_v1_0_10_20230320.bin  为 V1.0.10
SR3611_V1.0.9_2022_12_16.bin  为 V1.0.9
SR3611_V01.07.9_2022_12_16.bin 为 V01.07.9
SR3611_V10_02_10__2022_12_16.bin 为 V10.02.10

先看截图:

img

参考如下:

var str = "SR3511_300_v1_0_10_20230320.bin";

var regex = /[V|v]\d+[.|_]\d+[.|_]\d+/;

var match = regex.exec(str);

if (match) {
  let result = match[0];
  console.log(result);
  console.log(result.replaceAll("_", "."));
}

@ada; 你可以来解决么?