I have just started to learn javascript today and i'm trying to work out how i can convert seconds to milliseconds.
I tried to find something that would help me but everything i find is converting milliseconds to minutes or hours.
let str = 'You must wait 140 seconds before changing hands';
let timer = 0;
let num = str.match(/\d/g).join("");
timer = num;
console.log(timer);
setTimeout(() => {
console.log('time done')
}, timer);
I'm trying to extract the numbers from string and convert it to milliseconds for a setTimeout.
CodePudding user response:
- Here is a better regex
/(\d ) seconds?/- the?means thesis optional - 1 second is 1000 milliseconds as the word tells us
let str = 'You must wait 140 seconds before changing hands';
let timer = str.match(/(\d ) seconds?/)[1]*1000; // grab the captured number and multiply by 1000
console.log(timer)
setTimeout(() => {
console.log('time done')
}, timer);
Here is a countdown
let str = 'You must wait 10 seconds before changing hands';
const span = document.getElementById("timer");
let tId = setInterval(() => {
let timeLeft = str.match(/(\d ) seconds?/)[1]; // optional s on seconds
if (timeLeft <= 1) {
str = "Time's up";
clearInterval(tId);
}
else str = str.replace(/\d seconds?/,`${--timeLeft} second${timeLeft == 1 ? "" : "s"}`)
span.innerHTML = str;
}, 1000);
<span id="timer"></span>
CodePudding user response:
let str = 'You must wait 140 seconds before changing hands';
let seconds = /\d /.exec(str)[0];
// milliseconds = seconds * 1000;
const ms = seconds * 1000;
setTimeout(
() => {// doSomething},
ms
);
``
