School-HTML/3AIN/Esercizi TPS JavaScript Misti/Esercizio2Stringhe.html

70 lines
2.5 KiB
HTML

<!--
AUTORE: Manuel Vichi 3^AIN
Esercizio 2 Stringhe: comparazione di due stringhe
-->
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Confronto Stringhe</title>
<style>
textarea {
width: 100%;
height: 100px;
margin-bottom: 10px;
}
button {
padding: 10px;
font-size: 16px;
}
#result {
margin-top: 20px;
font-size: 18px;
}
</style>
</head>
<body>
<h1>Confronto stringhe</h1>
<textarea id="text1" placeholder="Inserisci la prima stringa"></textarea><br>
<textarea id="text2" placeholder="Inserisci la seconda stringa"></textarea><br>
<button onclick="confrontaStringhe()">Confronta</button>
<div id="result"></div>
<script>
function confrontaStringhe() {
const text1 = document.getElementById('text1').value;
const text2 = document.getElementById('text2').value;
// Conta i vari caratteri
const count1 = contaCaratteri(text1);
const count2 = contaCaratteri(text2);
let risultato = true;
// Controlla se le due stringhe hanno gli stessi caratteri
for (let char in count1) {
if (count1[char] !== count2[char]) {
risultato = false;
break;
}
}
// Controlla se ogni carattere che è presente in count2 è anche presente in count1
for (let char in count2) {
if (!(char in count1)) {
risultato = false;
break;
}
}
document.getElementById('result').innerText = risultato ? 'Le stringhe hanno la stessa distribuzione di caratteri.' : 'Le stringhe non hanno la stessa distribuzione di caratteri.';
}
function contaCaratteri(str) {
// Rimuovi tutto tranne le lettere (case-insensitive)
const cleanedStr = str.replace(/[^a-zA-Z]/g, '').toLowerCase();
const count = {};
// Conta la frequenza dei caratteri
for (let char of cleanedStr) {
count[char] = (count[char] || 0) + 1; // Se è la prima volta che il carattere viene incontrato, imposta zero. In tutti i casi infine somma 1 al valore precedentemente trovato.
}
return count;
}
</script>
</body>
</html>