JSFiddle - React, Tailwind, and code Playground

by KCarnaille

JavaScript

var number = '';

getNumber();
convert(number);

    
function getNumber(){
    while(!number || number < 0 || number > 999 || isNaN(number)){
   		number = parseInt(prompt('Saissez un nombre entre 0 et 999:'));  
	} 
}

function convert(myNumber){
  
  var units = myNumber % 10,
      tens = (myNumber % 100 - units) / 10,
      hundreds = (myNumber % 1000 - myNumber % 100) / 100;
  
 var textUnits = ['', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf']
 
 var textDiz = ['', 'dix', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante', 'quatre-vingt', 'quatre-vingt']
 
 var unitsOut, tensOut, hundredsOut;
 
 if(myNumber === 0){
    return 'zéro'
 }
    
 unitsOut = (units === 1 && tens > 0 && tens !== 8 ? '-et-' : '') + textUnits[units];
 
 if (tens === 1 && units > 0){
    tensOut =  textUnits[10 + units];
     unitsOut = '';
 }else if(tens === 7 || tens === 9){
    tensOut = textDiz[tens] + (tens === 7 && units === 1 ? '-et-' : '') + '-' + textUnits[10 + units];
    unitsOut = '';
    
 }else if(tens !== 0 && units === 0){
    tensOut = textDiz[tens];
    unitsOut = '';
 }else if(tens === 0){
    tensOut = '';
 }else{
  tensOut = textDiz[tens] + '-';       
 }
    
    
 if(hundreds === 1){
    hundredsOut = 'cent ';    
 }else if(hundreds > 1){
    hundredsOut = textUnits[hundreds] + '-cent ';   
 }else{
    hundredsOut = '';    
 }
    
 var fullData = hundredsOut + tensOut + unitsOut;    
    
 console.log(fullData); 
     
}