NEWS

[C#] Chia sẽ hàm bỏ dấu tiếng việt trong lập trình Csharp

[C#] Chia sẽ hàm bỏ dấu tiếng việt trong lập trình Csharp
Đăng bởi: Thảo Meo - Lượt xem: 32140 15:44:38, 31/10/2017C#   In bài viết

Bài viết hôm nay, mình sẽ giới thiệu cho các bạn cách xóa bỏ dấu tiếng việt trong lập trình C#.

- Thực ra, để các bạn viết hàm này cũng rất đơn giản, chỉnh cần dùng hàm thay thế là ok: 

Ví dụ: ă, â, á, ã, ả, ạ => a...

Demo ứng dụng:

xóa bỏ dấu tiếng việt lập trình csharp

Cách 1: Sử dụng Regex để xóa dấu tiếng việt

static Regex ConvertToUnsign_rg = null;

        public static string ConvertToUnsign(string strInput)
        {
            if (ReferenceEquals(ConvertToUnsign_rg, null))
            {
                ConvertToUnsign_rg = new Regex("p{IsCombiningDiacriticalMarks}+");
            }
            var temp = strInput.Normalize(NormalizationForm.FormD);
            return ConvertToUnsign_rg.Replace(temp, string.Empty).Replace("đ", "d").Replace("Đ", "D").ToLower();
        }

Cách 2: Bỏ dấu tiếng việt dùng hàm Replace

Hàm bỏ dấu tiếng việt:

public static string RemoveUnicode(string text)  
{  
    string[] arr1 = new string[] { "á", "à", "ả", "ã", "ạ", "â", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ă", "ắ", "ằ", "ẳ", "ẵ", "ặ",  
    "đ",  
    "é","è","ẻ","ẽ","ẹ","ê","ế","ề","ể","ễ","ệ",  
    "í","ì","ỉ","ĩ","ị",  
    "ó","ò","ỏ","õ","ọ","ô","ố","ồ","ổ","ỗ","ộ","ơ","ớ","ờ","ở","ỡ","ợ",  
    "ú","ù","ủ","ũ","ụ","ư","ứ","ừ","ử","ữ","ự",  
    "ý","ỳ","ỷ","ỹ","ỵ",};  
    string[] arr2 = new string[] { "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a",  
    "d",  
    "e","e","e","e","e","e","e","e","e","e","e",  
    "i","i","i","i","i",  
    "o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o",  
    "u","u","u","u","u","u","u","u","u","u","u",  
    "y","y","y","y","y",};  
    for (int i = 0; i < arr1.Length; i++)  
    {  
        text = text.Replace(arr1[i], arr2[i]);  
        text = text.Replace(arr1[i].ToUpper(), arr2[i].ToUpper());  
    }  
    return text;  
}  

Viết theo kiểu Extension cho lớp String C#:

public static string NonUnicode(this string text)  
{  
    string[] arr1 = new string[] { "á", "à", "ả", "ã", "ạ", "â", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ă", "ắ", "ằ", "ẳ", "ẵ", "ặ",  
    "đ",  
    "é","è","ẻ","ẽ","ẹ","ê","ế","ề","ể","ễ","ệ",  
    "í","ì","ỉ","ĩ","ị",  
    "ó","ò","ỏ","õ","ọ","ô","ố","ồ","ổ","ỗ","ộ","ơ","ớ","ờ","ở","ỡ","ợ",  
    "ú","ù","ủ","ũ","ụ","ư","ứ","ừ","ử","ữ","ự",  
    "ý","ỳ","ỷ","ỹ","ỵ",};  
    string[] arr2 = new string[] { "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a",  
    "d",  
    "e","e","e","e","e","e","e","e","e","e","e",  
    "i","i","i","i","i",  
    "o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o","o",  
    "u","u","u","u","u","u","u","u","u","u","u",  
    "y","y","y","y","y",};  
    for (int i = 0; i < arr1.Length; i++)  
    {  
        text = text.Replace(arr1[i], arr2[i]);  
        text = text.Replace(arr1[i].ToUpper(), arr2[i].ToUpper());  
    }  
    return text;  
}  

Cách sử dụng:

string test1 = "xin chào, các bạn đến với lập trình vb.net".NonUnicode();  
string test2 = Functions.RemoveUnicode("xin chào, các bạn đến với lập trình vb.net");  

Rất đơn giản phải không nào? Chúc các bạn thành công!

Tags:

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Chia sẽ hàm bỏ dấu tiếng việt trong lập trình Csharp
Đăng bởi: Thảo Meo - Lượt xem: 32140 15:44:38, 31/10/2017C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.