Я использую конвертер перед проверкой, но он все еще не подходит для всех языков.
Я не уверен, что это возможно.
function noExtendedChars( input_name ){
var whitelist = [
['a', 'à','á','â','ä','æ','ã','å','ā'],
['c', 'ç', 'ć', 'č'],
['e', 'è','é','ê','ë','ē','ė','ę'],
['i', 'ï','ï','í','ī','į','î'],
['l', 'ł'],
['n', 'ñ', 'ń'],
['o', 'ô', 'ö', 'ò', 'ó', 'œ', 'ø', 'ō', 'õ' ],
['s', 'ß', 'ś', 'š' ],
['u', 'û', 'ü', 'ù', 'ú', 'ū'],
['y', 'ÿ'],
['z', 'ž', 'ź', 'ż']
];
for( b=0; b < blacklist.length; b++ ){
var r= blacklist[b];
for ( a=1; a < r.length; a++ ){
input_name = input_name.replace( new RegExp( r[a], "gi") , r[0]);
}
}
return input_name;
}