📄 字幕合并.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 + -