Last active
August 12, 2024 15:30
-
-
Save bluzky/b8c205c98ff3318907b30c3e0da4bf3f to your computer and use it in GitHub Desktop.
Remove vietnamese accent javascript / Bỏ dấu tiếng Việt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function stringToSlug(str) { | |
// remove accents | |
var from = "àáãảạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệđùúủũụưừứửữựòóỏõọôồốổỗộơờớởỡợìíỉĩịäëïîöüûñçýỳỹỵỷ", | |
to = "aaaaaaaaaaaaaaaaaeeeeeeeeeeeduuuuuuuuuuuoooooooooooooooooiiiiiaeiiouuncyyyyy"; | |
for (var i=0, l=from.length ; i < l ; i++) { | |
str = str.replace(RegExp(from[i], "gi"), to[i]); | |
} | |
str = str.toLowerCase() | |
.trim() | |
.replace(/[^a-z0-9\-]/g, '-') | |
.replace(/-+/g, '-'); | |
return str; | |
} |
<3
Thank you anh, em adapt được logic của anh vào project của em. Em có thêm 1 gợi ý trong lúc em sử dụng:
Em chia "dấu tiếng Việt" thành 2 loại:
- tone mark: các thanh (sắc, huyền, hỏi, ngã, nặng)
- diacritical marks: dấu phụ (ă,â,ê,ô,ơ,ư,đ) tụi nó vẫn thuộc bảng chữ cái tiếng Việt. Case em dùng là để loop qua "pangrams tiếng Việt"
- tiếng Anh: The quick brown fox jumps over the lazy dog
- tiếng Việt: Trường ở quê sạch và đẹp lắm do bố xây kĩ
Nên code sẽ có 2 options: (0) xóa toàn bộ dấu; (1) chỉ xóa tone mark
function stringToSlug(str, option = 0) {
var from, to;
// remove all marks (Latin alphabet)
if(option === 0){
from = "àáãảạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệđùúủũụưừứửữựòóỏõọôồốổỗộơờớởỡợìíỉĩịäëïîöüûñçýỳỹỵỷ",
to = "aaaaaaaaaaaaaaaaaeeeeeeeeeeeduuuuuuuuuuuoooooooooooooooooiiiiiaeiiouuncyyyyy";
}
//remove tone mark (Vietnamese alphabet)
if(option === 1){
from = "àáãảạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệđùúủũụưừứửữựòóỏõọôồốổỗộơờớởỡợìíỉĩịäëïîöüûñçýỳỹỵỷ",
to = "aaaaaăăăăăăââââââeeeeeêêêêêêđuuuuuưưưưưưoooooôôôôôôơơơơơơiiiiiaeiiouuncyyyyy";
}
Thanks for sharing <3
You saved my life!!! Thanks a lot
God job!
it not working for "Đ"
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
fixed. Thank you