解决方案 »
- jquery treeview控件
- 用window.showModelDialog返回值给父页面时报undifine脚本错误
- $("item_code")说什么意思+js
- 用JS实现收缩式菜单?急等。。。
- 真受不了,这个form如何提交?
- 求助,关于select下拉框快速定位的问题
- 请教两个问题,关于showModelessDialog与层
- 关于IFRAME奇怪的现象,请帮忙!急急急!
- Echarts页面不报错,却无法加载出来视图
- json数组赋值给json对象数组
- 想在页面加载的时候,根据iframe的src的内容不同改变iframe的高度,这个函数怎么写?
- 急急急急急急急急~~~非常急。求人帮忙。
function time_translate(str) {
var ar = str.split(/\s-->\s/);
var t1 = ar[0];
var t2 = ar[1];
function ms(t) {
var ar = t.split(',');
var p1 = ar[0], p2 = ar[1];
var ar = p1.split(':'), result;
result = (parseInt(ar[0]) * 3600 + parseInt(ar[1]) * 60 + parseInt(ar[2])) * 1000 + parseInt(p2);
return result;
}
return ms(t1) + ',' + ms(t2);
}
alert(time_translate(str));
想请教一下
25
00:02:15,134 --> 00:02:17,844
在数钱的那个
The guy who keeps counting his chips?26
00:02:20,222 --> 00:02:22,849
- 他赚了多少?
- 至少10000
- What's he into us for?
- At least 10,000.像上面的字幕这样 如何找出其数据结构,我想把时间轴,中文,英文都分别用写出一个函数待调用!
不清楚如何分析找出中文,英文分别再哪几行
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function subtitles(type) {
var str = document.getElementById('subtitles').innerHTML;
var ar_tmp = str.split(/[\r\n]+/); //分行
var ar = [];
for(var i = 0; i < ar_tmp.length; i ++) if (ar_tmp[i].length > 0) ar.push(ar_tmp[i]); //去掉空行
var result = {SECTION: [], TIMELINE:[], CN: [], EN: []}; //成员分别代表字幕段号、时间轴、中文字幕、英文字幕
ar_tmp = new Array(); //ar_tmp临时数组接下去用于保存字幕段索引号
for(var i = 0; i < ar.length; i ++) {
if (ar[i].match(/^\d+$/)) {
ar_tmp.push(i);
result['SECTION'].push(ar[i]);
result['TIMELINE'].push(ar[i + 1]);
}
}
for(var i = 1; i <= ar_tmp.length; i ++) {
var arCN = [], arEN = [];
//计算每段字幕的行数(包括中英文,中文行数应该与英文的行数是相同的,比如共有6行字幕,其中3行是中文,3行是英文)
var j;
if (i < ar_tmp.length) j = ar_tmp[i] - ar_tmp[i - 1] - 2;
else j = ar.length - ar_tmp[i - 1] - 2;
for(k = 0; k < j / 2; k ++) arCN.push(ar[ar_tmp[i - 1] + 2 + k]);
for(k = j / 2; k < j; k ++) arEN.push(ar[ar_tmp[i - 1] + 2 + k]);
result['CN'].push(arCN);
result['EN'].push(arEN);
}
return result[type];
}window.onload = function() {
document.getElementById('btn_TIMELINE').onclick = function() {
var timeline = subtitles('TIMELINE');
document.getElementById('result').innerHTML = timeline.join('<br />');
}
document.getElementById('btn_CN').onclick = function() {
var CN = subtitles('CN');
var html = '';
for(var i = 0; i < CN.length; i ++) html += CN[i].join('<br />') + '<br />';
document.getElementById('result').innerHTML = html;
}
document.getElementById('btn_EN').onclick = function() {
var EN = subtitles('EN');
var html = '';
for(var i = 0; i < EN.length; i ++) html += EN[i].join('<br />') + '<br />';
document.getElementById('result').innerHTML = html;
}
document.getElementById('btn_S2').onclick = function() {
document.getElementById('result').innerHTML = subtitles('SECTION')[1] + '<br />' + subtitles('TIMELINE')[1] + '<br />' + subtitles('CN')[1].join('<br />') + '<br />' + subtitles('EN')[1].join('<br />');
}
}
</script>
</head><body>
<pre id="subtitles">
25
00:02:15,134 --> 00:02:17,844
在数钱的那个
The guy who keeps counting his chips?26
00:02:20,222 --> 00:02:22,849
- 他赚了多少?
- 至少10000
- What's he into us for?
- At least 10,000.
</pre>
<input type="button" id="btn_TIMELINE" value="时间轴" /><input type="button" id="btn_CN" value="中文字幕" /><input type="button" id="btn_EN" value="英文字幕" />
<input type="button" id="btn_S2" value="显示第二段" /><div id="result"></div>
</body>
</html>