ok allora ho corretto nell'assegnazione degli array con i codici esadecimali ed ho assegnato la stringa al rimpiazzamento come indicato.

funziona bene per le accentate ora.

nella seconda parte della funzione non va bene mettere la regexp in quel modo? io voglio che dopo la prima sostituzione di accentate, apici e virgolette, e la trasformazione in minuscolo mi trovi tutti i caratteri che sono nella stringa e che non sono lettere a-z e numeri 0-9

per ora è così:
Codice PHP:
function pulisci(str){
    
lettere = new Array('\u00E0''\u00E8''\u00EC''\u00F2''\u00F9',
                        
'\u00E1''\u00E9''\u00ED''\u00F3''\u00FA',
                        
'\u00C0''\u00C8''\u00CC''\u00D2''\u00D9',
                        
'\u00C1''\u00C9''\u00CD''\u00D3''\u00DA');
    
sostituzioni = new Array('a''e''i''o''u',
                            
'a''e''i''o''u',
                            
'a''e''i''o''u',
                            
'a''e''i''o''u');
    for (var 
i=0i<lettere.lengthi++) {
        
str str.replace(lettere[i], sostituzioni[i]);
    }
    
str str.replace('/[^a-zo-9]/i''');
    
str str.toLowerCase();

    return 
str;