Skip to content

Instantly share code, notes, and snippets.

@teefan
Created March 3, 2017 05:09
Show Gist options
  • Save teefan/433e70d4cb33686b1d2791c73b162c58 to your computer and use it in GitHub Desktop.
Save teefan/433e70d4cb33686b1d2791c73b162c58 to your computer and use it in GitHub Desktop.
VNI to Unicode converter
function vni2unicode(text) {
let result = text;
let uniChars1 = ['Ấ', 'ấ',
'Ầ', 'ầ', 'Ẩ', 'ẩ', 'Ẫ', 'ẫ', 'Ậ', 'ậ', 'Ắ', 'ắ',
'Ằ', 'ằ', 'Ẳ', 'ẳ', 'Ẵ', 'ẵ', 'Ặ', 'ặ', 'Ế', 'ế', 'Ề', 'ề', 'Ể', 'ể',
'Ễ', 'ễ', 'Ệ', 'ệ', 'Ố', 'ố', 'Ồ', 'ồ', 'Ổ', 'ổ', 'Ỗ', 'ỗ',
'Ộ', 'ộ', 'Ớ', 'ớ', 'Ờ', 'ờ', 'Ở', 'ở', 'Ỡ', 'ỡ',
'Ợ', 'ợ', 'Ố', 'ố', 'Ồ', 'ồ', 'Ổ', 'ổ', 'Ỗ', 'ỗ',
'Ộ', 'ộ', 'Ớ', 'ớ', 'Ờ', 'ờ', 'Ở', 'ở', 'Ỡ', 'ỡ',
'Ợ', 'ợ', 'Ứ', 'ứ', 'Ừ', 'ừ',
'Ử', 'ử', 'Ữ', 'ữ', 'Ự', 'ự'
];
let vniChars1 = ['AÁ', 'aá',
'AÀ', 'aà', 'AÅ', 'aå', 'AÃ', 'aã', 'AÄ', 'aä', 'AÉ', 'aé',
'AÈ', 'aè', 'AÚ', 'aú', 'AÜ', 'aü', 'AË', 'aë', 'EÁ', 'eá', 'EÀ', 'eà', 'EÅ', 'eå',
'EÃ', 'eã', 'EÄ', 'eä', 'OÁ', 'oá', 'OÀ', 'oà', 'OÅ', 'oå', 'OÃ', 'oã',
'OÄ', 'oä', 'ÔÙ', 'ôù', 'ÔØ', 'ôø', 'ÔÛ', 'ôû', 'ÔÕ', 'ôõ',
'ÔÏ', 'ôï', 'OÁ', 'oá', 'OÀ', 'oà', 'OÅ', 'oå', 'OÃ', 'oã',
'OÄ', 'oä', 'ÔÙ', 'ôù', 'ÔØ', 'ôø', 'ÔÛ', 'ôû', 'ÔÕ', 'ôõ',
'ÔÏ', 'ôï', 'ÖÙ', 'öù', 'ÖØ', 'öø',
'ÖÛ', 'öû', 'ÖÕ', 'öõ', 'ÖÏ', 'öï'
];
let uniChars = [
'Ơ', 'ơ', 'ĩ', 'Ị', 'ị',
'À', 'Á', 'Â', 'Ã', 'È', 'É', 'Ê', 'Ì', 'Í', 'Ò',
'Ó', 'Ô', 'Õ', 'Ù', 'Ú', 'Ý', 'à', 'á', 'â', 'ã',
'è', 'é', 'ê', 'ì', 'í', 'ò', 'ó', 'ô', 'õ', 'ù',
'ú', 'ý', 'Ă', 'ă', 'Đ', 'đ', 'Ĩ', 'Ũ', 'ũ',
'Ư', 'ư', 'Ạ', 'ạ', 'Ả', 'ả', 'Ẹ', 'ẹ',
'Ẻ', 'ẻ', 'Ẽ', 'ẽ', 'Ỉ', 'ỉ', 'Ọ', 'ọ',
'Ỏ', 'ỏ', 'Ụ', 'ụ', 'Ủ', 'ủ', 'Ỳ', 'ỳ', 'Ỵ', 'ỵ',
'Ỷ', 'ỷ', 'Ỹ', 'ỹ'
];
let vniChars = [
'Ô', 'ô', 'ó', 'Ò', 'ò',
'AØ', 'AÙ', 'AÂ', 'AÕ', 'EØ', 'EÙ', 'EÂ', 'Ì', 'Í', 'OØ',
'OÙ', 'OÂ', 'OÕ', 'UØ', 'UÙ', 'YÙ', 'aø', 'aù', 'aâ', 'aõ',
'eø', 'eù', 'eâ', 'ì', 'í', 'oø', 'où', 'oâ', 'oõ', 'uø',
'uù', 'yù', 'AÊ', 'aê', 'Ñ', 'ñ', 'Ó', 'UÕ', 'uõ',
'Ö', 'ö', 'AÏ', 'aï', 'AÛ', 'aû', 'EÏ', 'eï',
'EÛ', 'eû', 'EÕ', 'eõ', 'Æ', 'æ', 'OÏ', 'oï',
'OÛ', 'oû', 'UÏ', 'uï', 'UÛ', 'uû', 'YØ', 'yø', 'Î', 'î',
'YÛ', 'yû', 'YÕ', 'yõ'
];
for (let i = 0; i < vniChars1.length; i++) {
result = result.replace(new RegExp(vniChars1[i], 'g'), uniChars1[i]);
}
for (let i = 0; i < vniChars.length; i++) {
result = result.replace(new RegExp(vniChars[i], 'g'), uniChars[i]);
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment