⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 字幕合并.txt

📁 合并字幕功能
💻 TXT
字号:
<title>srt字幕合并工具</title><body>
<div id="step1">
   <div style="float:left; margin-right:30px;">
       <div>将第一张碟的字幕拷贝进来</div>
       <div><textarea cols="45" rows="30" id="oldStr"></textarea></div>
   </div>
   <div style="float:left;">
       <div>将第二张碟的字幕拷贝进来</div>
       <div><textarea name="textarea" cols="45" rows="30" id="newStr"></textarea></div>
   </div>
   <div style="clear:both;"></div>
   <label>
   第一碟结束时间<input type="text" name="textfield" id="lastTime">
   </label>
   第一碟结束ID
   <input name="textfield" type="text" id="lastID" size="5">
   <label> <br>
   <br>
   <input name="convertbutton" type="button" id="convertbutton" value="转换" onClick="goConvert()">
   </label>
</div>
<div id="step2" style="display:none;">
   <div>合并结果(将下面的文字拷贝到srt文件中)</div>
   <div><textarea cols="45" rows="30" id="resultDiv"></textarea></div>
   <div><button id="returnBack" onclick="switchStep(1);">返回上一步</button></div>
</div>
</body>
<script language="javascript">
function goConvert()
{
   var zm_old=document.getElementById("oldStr").value;//旧字幕
   var zm_new=document.getElementById("newStr").value;
   var last_time=document.getElementById("lastTime").value;//上一张盘结束时间
   var regArray=last_time.match(/(\d{1,2})\:(\d{1,2})\:(\d{1,2})\,(\d{1,4})/)//匹配结束时间
   if(!regArray)
   {
       regArray=last_time.match(/(\d{1,2})\:(\d{1,2})\:(\d{1,2})/);
       if(!regArray)
           {alert("时间格式错误,请重新输入");return;}
       else
           regArray.push("000")
   }
   
   if(document.getElementById("lastID").value=="")
   {alert("请输入第一张碟结束的ID");return;}
   var last_num=parseInt(document.getElementById("lastID").value);
    


   var oldMatchArray=zm_old.match(/\d{1,2}\:\d{1,2}\:\d{1,2}\,\d{1,4}/g);
   if(!oldMatchArray)
   {alert("不是srt标准格式,无法进行合并。");return;   }
   for(i=0;i<oldMatchArray.length;i++)
   {
       var innerArray=oldMatchArray[i].match(/(\d{1,2})\:(\d{1,2})\:(\d{1,2})\,(\d{1,4})/);
       var intAdd=innerArray[1]*1*3600000+innerArray[2]*1*60000+innerArray[3]*1*1000+innerArray[4]*1;
       var dateObj=new Date(2006,0,1,regArray[1],regArray[2],regArray[3],regArray[4]);
       dateObj.setTime(dateObj.getTime()+intAdd);
       var replaceStr=dateObj.getHours()+":"+dateObj.getMinutes()+":"+dateObj.getSeconds()+",";
       var mcd=dateObj.getMilliseconds()+"";
       if (mcd.length==1)
       {
           mcd="00"+mcd;
       }
       else if(mcd.length==2)
       {
           mcd="0"+mcd;
       }
       replaceStr=replaceStr+mcd;
       zm_old=zm_old.replace(oldMatchArray[i],replaceStr);
   }


   var oldMatchArrayNum=zm_old.match(/\n*\d+\s*\n\d{1,2}\:\d{1,2}\:\d{1,2}/g);
   for(i=0;i<oldMatchArrayNum.length;i++)
   {
       var cmatchArr=oldMatchArrayNum[i].match(/\n*(\d+)\s*\n\d{1,2}\:\d{1,2}\:\d{1,2}/)
       var outnum=(last_num+parseInt(cmatchArr));
       outstr1=oldMatchArrayNum[i].replace(/(\n*)(\d+)(\s*\n\d{1,2}\:\d{1,2}\:\d{1,2})/,"$1"+outnum+"$3");
       zm_old=zm_old.replace(oldMatchArrayNum[i],outstr1);
   }
   document.getElementById("resultDiv").value=document.getElementById("oldStr").value+zm_old;
   switchStep(2)
}


function switchStep(id)
{
   var stp1 = document.getElementById("step1");
   var stp2 = document.getElementById("step2");
   if(stp1!=null && stp2!=null)
   if(id == 1)
   {
       stp1.style.display = "block";
       stp2.style.display = "none";
   }
   else
   {
       stp1.style.display = "none";
       stp2.style.display = "block";
   }
}

</script>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -