Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

readme.md

password generator


url test

function clipboard

    const textarea = document.createElement('textarea')
    const password = resulEl.innerText

    if(!password) {
        return ''
    } 

    textarea.value = password
    document.body.appendChild(textarea)
    textarea.select()
    document.execCommand('copy')
    textarea.remove()
    alert('password are copied into clipboard')

on cree un textarea, on recupere les infos du password, on les mets le password dans le value, puis on selectionne et on execute une copy, puis on remove le textarea et on envoit une alert

function getRandomLower() {
return String.fromCharCode(Math.floor(Math.random() * 26) + 97)
}

pour generer aleatoirement des caracteres avec la function math floor et on prend une valeur ascii en html (dans la documentation)

generateEl.addEventListener('click', () => {
    const length = +lengthEl.value
    const hasUpper = uppercaseEl.checked
    const hasLower = lowercaseEl.checked
    const hasNumbers = numbersEl.checked
    const hasSymbols = symbolsEl.checked
    
    

    resulEl.innerHTML = generatePassword( hasLower, hasNumbers, hasSymbols, hasUpper, length)

    
})

on recupere l'ensemble des valeurs des checkbox et du length

function generatePassword(lower, upper, number, symbol, length) {
let generatePassword = ''

const typesCount = lower + upper + number + symbol 
const typesArray = [{lower}, {upper} , {number}, {symbol}].filter(item => Object.values(item)[0])

if (typesCount === 0){
    return ''
}

pour generer les caracteres ont recupere l'ensemble des donnees et ont les additionnes et on prend la premiere donnee dans chaque resultat array

for(let i = 0; i < length; i += typesCount){
    typesArray.forEach(type => {
        
        const functName = Object.keys(type)[0]
generatePassword += randomFunct[functName]() 
    })
}

const finalPassword = generatePassword.slice(0, length)
return finalPassword
}

il faut calculer la longueur (length) et adapter le resultat en fonction de cette longueur