io proporrei un paio di modifiche alla funzione 3:
1- la funzione così com'è lascia nel menu le parole contenenti al loro interno la stringa immessa nel text input, forse potrebbe servire far sì che queste lettere siano all'inizio e non in posizione qualsiasi (ad esempio se scrivo r devono rimanere rosso e rosa, ma non verde)
per fare questo basta modificare l'espressione regolare mettendo un ^ subito dopo lo / d'apertura;
2- invece di usare l'eval io userei il costruttore dell'oggetto RegExp

quindi verrebbe:

codice:
...
var myre=new RegExp("^"+e,"g");
...