Since those characters have no mathematical relation to their 'plain equivalents' in the unicode table you will have to replace them manually using something like this:
function cleanUpSpecialChars(str)
{
return str
.replace(/[ÀÁÂÃÄÅ]/g,"A")
.replace(/[àáâãäå]/g,"a")
.replace(/[ÈÉÊË]/g,"E")
//.... all the rest
.replace(/[^a-z0-9]/gi,''); // final clean up
}
The case-insensitve option doesn't work on those characters, so you have to do it for the lower and upper case variants of them.