vikit
Version:
Vietnamese Kit - Useful utilities for Vietnamese developer.
49 lines (48 loc) • 2.08 kB
JavaScript
/**
* Remove diacritics from Vietnamese sentences.
*
* @example
* const verse = 'Vì Đức Chúa Trời yêu thương thế gian'
* console.log(noDiacritic(verse)) // 'vi duc chua troi yeu thuong the gian'
* const result = diacritics(str) // 'vi-duc-chua-troi-yeu-thuong-the-gian'
*
* @param str Vietnamese string.
* @return Removed diacritics string.
*/
export var noDiacritic = function (str) {
if (str) {
var trim = function (alias) {
var str = alias;
str = str.toLowerCase();
str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ|à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a');
str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ|ễ|è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e');
str = str.replace(/ì|í|ị|ỉ|ĩ|ì|í|ị|ỉ|ĩ/g, 'i');
str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ|ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o');
str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ|ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u');
str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ|ỳ|ý|ỵ|ỷ|ỹ/g, 'y');
str = str.replace(/đ|đ/g, 'd');
return str;
};
return trim(trim(str));
}
else {
return '';
}
};
/**
* Remove diacritics from Vietnamese sentences except that
* replace every space with dash character.
*
* @example
* const verse = 'Vì Đức Chúa Trời yêu thương thế gian'
* console.log(noDiacriticDash(str)) // 'vi-duc-chua-troi-yeu-thuong-the-gian'
*
* @param str Vietnamese string.
* @return {string} Removed diacritics string with dash replaced.
*/
export var noDiacriticDash = function (str) {
return noDiacritic(str)
.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'| |\"|\&|\#|\[|\]|~|$|_/g, '-')
.replace(/-+-/g, '-')
.replace(/^\-+|\-+$/g, '');
};