我昨天试过了,但我得到了下面的代码
let str = document.querySelector("#content_value > table:nth-child(2) > tbody > tr > td:nth-child(2) > table:nth-child(11) > tbody > tr:nth-child(10) > td:nth-child(2) > span").textContent;
let timeParts = str.match(/\b(\d\d?):(\d\d?)(?::(\d\d?))?\b/) || [0,0,0];
console.log("Converted to array:", timeParts);
let [, h, m, s] = timeParts.map(str => +str || 0);
let cas = ((h * 60 + m) * 60 + s) * 1000;
console.log(cas);不幸的是,代码不能将秒转换为毫秒,有人会帮忙吗?
是3个时间(文本)和时间
time
17:45
0:01:08
0:00:10小时、分钟、秒,这三个值需要转换为毫秒
此代码适用于小时和分钟,但不适用于秒
在此处输入图像描述
在此处输入图像描述
2:https://i.stack.imgur.com/nDdYh.png这项工作3:https://i.stack.imgur.com/8FTuJ.png秒不工作(18秒是18000+1min 60000 (78000))脚本https://i.stack.imgur.com/nDdYh.png 1000
<span class="inactive"><span>Suroviny jsou k dispozici za <span class="">0:00:10</span></span><span
function toms(str) {
let timeParts = str.match(/\b(\d\d?):(\d\d?)(?::(\d\d?))?\b/) || [0,0,0,0];
let [, h, m, s] = timeParts.map(str => +str || 0);
let cas = ((h * 60 + m) * 60 + s) * 1000;
return cas;
}
["1:02", "Suroviny jsou k dispozici za 0:01:35Suroviny jsou k dispozici.", "None"].forEach(str => console.log(str, toms(str)))
发布于 2021-06-02 22:06:45
错误是您的正则表达式不匹配,并且您获得了默认的[0,0,0]数组,但是当赋值给h、m和s时,您丢弃了第一个元素,并在s中获得了undefined。
function toms(str) {
let timeParts = str.match(/\b(\d\d?):(\d\d?)(?::(\d\d?))?/) || [0,0,0,0];
let [, h, m, s] = timeParts.map(str => +str || 0);
let cas = ((h * 60 + m) * 60 + s) * 1000;
return cas;
}
["1:02", "1:02:03", "Suroviny jsou k dispozici za 0:01:35Suroviny jsou k dispozici.", "None"].forEach(str => console.log(str, toms(str)))
https://stackoverflow.com/questions/67806192
复制相似问题