¿Cómo analizar una cadena de duración en segundos con Javascript?

Estoy tratando de analizar una cadena de entrada de usuario para la duración (en segundos) con Javascript.

Aquí hay algunos ejemplos de entradas que me gustaría poder tratar con:

"1 hora, 2 minutos""1 día, 2 horas, 3 minutos""1d 2h 37m""1 día 2min""3days 20horas"

Los componentes clave son 1) días, 2) horas 3) minutos, pero es posible que algunos componentes no siempre estén incluidos.

Mi plan de ataque es usar .match y regex. Mientras pueda obtener la primera letra de la palabra, sabré para qué es el número anterior y podré manejar todos los diferentes formatos de las palabras (por ejemplo, horas, hora, hora y hora). Sin embargo, ya que estoy aprendiendo expresiones regulares para esto, ha resultado ser mucho más complicado de lo que pensaba.

Cualquier ayuda o sugerencia sería muy apreciada!

Respuestas a la pregunta(5)

Su respuesta a la pregunta