mirror of
https://github.com/arthur-pbty/site-convertisseur-de-base.git
synced 2026-06-03 23:36:24 +02:00
38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
const convertButton = document.getElementById('convertButton');
|
|
const baseSource = document.getElementById('baseSource');
|
|
const baseDestination = document.getElementById('baseDestination');
|
|
const numberInput = document.getElementById('numberInput');
|
|
const resultOutput = document.getElementById('resultOutput');
|
|
const toggleThemeButton = document.getElementById('toggleTheme');
|
|
|
|
for (let i = 2; i <= 36; i++) {
|
|
let option = new Option(i, i);
|
|
baseSource.add(option.cloneNode(true));
|
|
baseDestination.add(option);
|
|
}
|
|
|
|
// Convert and display result with error handling
|
|
convertButton.addEventListener('click', () => {
|
|
const sourceBase = parseInt(baseSource.value);
|
|
const destinationBase = parseInt(baseDestination.value);
|
|
const number = numberInput.value.trim();
|
|
|
|
try {
|
|
if (!number.match(/^[0-9A-F]+$/i)) {
|
|
throw new Error('Nombre invalide pour la base donnée');
|
|
}
|
|
const result = parseInt(number, sourceBase).toString(destinationBase);
|
|
if (isNaN(result)) {
|
|
throw new Error('Conversion impossible');
|
|
}
|
|
resultOutput.value = result.toUpperCase();
|
|
} catch (error) {
|
|
resultOutput.value = 'Erreur';
|
|
}
|
|
});
|
|
|
|
// Toggle dark theme
|
|
toggleThemeButton.addEventListener('click', () => {
|
|
document.body.classList.toggle('dark');
|
|
toggleThemeButton.textContent = document.body.classList.contains('dark') ? 'Thème Clair' : 'Thème Sombre';
|
|
}); |