Trong lập trình C#, đôi khi có những lúc bạn cần xử lý chuỗi bỏ dấu Tiếng Việt. Dưới đây là đoạn mã mình hay xử dụng để làm việc này.
public static string RemoveVietnameseTone(string text) { string result = text.ToLower(); result = Regex.Replace(result, "à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ|/g", "a"); result = Regex.Replace(result, "è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ|/g", "e"); result = Regex.Replace(result, "ì|í|ị|ỉ|ĩ|/g", "i"); result = Regex.Replace(result, "ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ|/g", "o"); result = Regex.Replace(result, "ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ|/g", "u"); result = Regex.Replace(result, "ỳ|ý|ỵ|ỷ|ỹ|/g", "y"); result = Regex.Replace(result, "đ", "d"); return result; }
Hy vọng sẽ giúp ích được cho nhiều người.
Nếu đoạn mã trên có bug hoặc có thể cải thiện, hãy comment xuống dưới giúp mình, xin cảm ơn.
Trong một số trường hợp mà người dùng bảng mã unicode tổ hợp thì nó không bỏ các thanh dấu được, nên bổ thêm đoạn này là hoàn hảo luôn. Cảm ơn bạn đã chia sẻ
result = Regex.Replace(result, “̉”, “”);
result = Regex.Replace(result, “́”, “”);
result = Regex.Replace(result, “̣”, “”);
result = Regex.Replace(result, “̀”, “”);
result = Regex.Replace(result, “̃”, “”);