You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何从完整路径URL中移除文件扩展名

解决方案

核心替换逻辑

你可以直接用精准匹配.mp4后缀的正则实现替换,避免复杂逻辑出错:

// 直接将末尾的.mp4替换为.jpg,仅匹配后缀位置的.mp4,不会影响路径中间的点
const posterUrl = element.replace(/\.mp4$/, '.jpg')

你之前的写法报错大概率是两个原因:

  • 正则中的.没有转义,会被识别为匹配任意字符的通配符
  • 替换后没有将结果赋值给新变量就直接使用

额外修复点

你的原有代码中<video>标签没有闭合,属性写完后缺少右尖括号>,会导致HTML渲染异常,需要一并修正。

修改后完整代码

function createImagesTag(data){
    var imagesdata = JSON.parse(data);
    images=imagesdata;
    var imagesTag="";
    var a=0;
    imagesdata.forEach(element => {
        // 提前处理海报路径
        const posterPath = element.replace(/\.mp4$/, '.jpg');
        if(a==0){
            // 补全video标签的闭合尖括号,替换poster路径
            imagesTag+="<video  muted preload='none' poster='"+ posterPath +"' width='80%' height='40%' id='images_"+a+"' onclick='changeSelected("+ a +")' class='imagescards'><source src='"+ element +"#t=1.5' type='video/mp4' style='border: 3px solid red;'></video><br />"
        }
        else{
            // 补全video标签的闭合尖括号,替换poster路径
            imagesTag+="<video muted preload='none' poster='"+ posterPath +"' width='80%' height='40%' id='images_"+a+"' onclick='changeSelected("+ a +")' class='imagescards'><source src='"+ element +"#t=1.5' type='video/mp4'></video><br />"
        }
      a++;
    });
    document.getElementById("images").innerHTML = imagesTag;
}

兼容多视频后缀的写法

如果后续需要支持webm、ogg等其他视频格式,可以把正则调整为:

const posterPath = element.replace(/\.(mp4|webm|ogg)$/, '.jpg');

内容的提问来源于stack exchange,提问作者user10998289

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:24:03