-
Star
(115)
You must be signed in to star a gist -
Fork
(29)
You must be signed in to fork a gist
-
-
Save hu2di/e80d99051529dbaa7252922baafd40e3 to your computer and use it in GitHub Desktop.
function removeVietnameseTones(str) { | |
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"); | |
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"); | |
// Some system encode vietnamese combining accent as individual utf-8 characters | |
// Một vài bộ encode coi các dấu mũ, dấu chữ như một kí tự riêng biệt nên thêm hai dòng này | |
str = str.replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g, ""); // ̀ ́ ̃ ̉ ̣ huyền, sắc, ngã, hỏi, nặng | |
str = str.replace(/\u02C6|\u0306|\u031B/g, ""); // ˆ ̆ ̛ Â, Ê, Ă, Ơ, Ư | |
// Remove extra spaces | |
// Bỏ các khoảng trắng liền nhau | |
str = str.replace(/ + /g," "); | |
str = str.trim(); | |
// Remove punctuations | |
// Bỏ dấu câu, kí tự đặc biệt | |
str = str.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'|\"|\&|\#|\[|\]|~|\$|_|`|-|{|}|\||\\/g," "); | |
return str; | |
} |
Thank @hungdev and @tannguyenit.
Truly appreciate your work <3
thanks
thanks alot
Great. Thank you so much
có vẻ đã hoàn thiện. cảm ơn bạn
Cảm ơn bạn
Cảm ơn bạn nhiều
cảm ơn tiền bối
cảm ơn bạn
gid:m9Jk3xmt8AiYwJAKhi5k89
Tks for share :)
Ok nice
ngonnnnn thanks anh em
thanks
Cảm ơn bạn, mình cần thêm dấu gạch nối nữa nên đã tìm được cái này:
/*
str = str.replace(/\W+/g, ' ');
str = str.replace(/\s/g, '-');
*/
Thêm 2 cái này ở cuối để chuyển khoảng trắng thành dấu gạch nối
ví dụ: Viet Nam => Viet-Nam
cảm ơn bạn nhiều nha trông không tối ưu lắm nhưng lúc chạy thấy ra kết quả ok
Xin cảm ơn bạn, đúng thứ tôi dang cần. Nhưng tôi thấy bạn nên để phần xoá nhiều khoảng trắng sau phần xoá ký tự đặc biệt, bởi vì sau khi xoá ký tự đặc biệt đôi khi lại xuất hiện trường hợp 2 khoảng trắng liền kề. Xoá ký tự đặc biệt theo tôi nên dùng str = str.replace(/[^a-zA-Z0-9 ]/g, ""); thì đỡ phức tạp hơn.
Pls try this!