-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReto#11.js
45 lines (33 loc) · 1.63 KB
/
Reto#11.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
Reto #11: 🏴☠️ Nombres de archivos codificados
El Grinch ha hackeado 🏴☠️ los sistemas del taller de Santa Claus y ha codificado los nombres de todos los archivos importantes. Ahora los elfos no pueden encontrar los archivos originales y necesitan tu ayuda para descifrar los nombres.
Cada archivo sigue este formato:
Comienza con un número (puede contener cualquier cantidad de dígitos).
Luego tiene un guion bajo _.
Continúa con un nombre de archivo y su extensión.
Finaliza con una extensión extra al final (que no necesitamos).
Ten en cuenta que el nombre de los archivos pueden contener letras (a-z, A-Z), números (0-9), otros guiones bajos (_) y guiones (-).
Tu tarea es implementar una función que reciba un string con el nombre de un archivo codificado y devuelva solo la parte importante: el nombre del archivo y su extensión.
Ejemplos:
decodeFilename('2023122512345678_sleighDesign.png.grinchwa')
// ➞ "sleighDesign.png"
decodeFilename('42_chimney_dimensions.pdf.hack2023')
// ➞ "chimney_dimensions.pdf"
decodeFilename('987654321_elf-roster.csv.tempfile')
// ➞ "elf-roster.csv"
*/
/**
* @param {string} filename - The filename to decode.
* @returns {string} The decoded filename.
*/
function decodeFilename(filename) {
let match = filename.match(/^\d+_(.+\.[a-zA-Z0-9]+)\./)
return match ? match[1] : ''
}
// Tests
console.log(decodeFilename('2023122512345678_sleighDesign.png.grinchwa'))
// ➞ "sleighDesign.png"
console.log(decodeFilename('42_chimney_dimensions.pdf.hack2023'))
// ➞ "chimney_dimensions.pdf"
console.log(decodeFilename('987654321_elf-roster.csv.tempfile'))
// ➞ "elf-roster.csv"