PDA

View Full Version : Cần giúp: FixURL - bỏ tiếng việt và thay các kí tự đặc biệt thành dấu -



khigiadano
11-12-2011, 16:50
Em đang cần biến cái tiêu đề bài viết thành link
Nên em tính sẽ gỡ bỏ tiếng việt có dấu thành không dấu
Sau đó các kí tự đặc biệt như !@#$%^&*()... sẽ chuyển thành dấu -

Nếu dùng Replace từng cái thì có vẻ không khoa học tí nào sad

Em thường dùng cái Regex để lọc dữ liệu
Ví dụ để lọc dữ liệu dạng số:
System.Text.RegularExpressions.Regex.Replace(Chuoi _Xu_Ly, "[^0-9]", "");

Nhưng không biết viết thế nào để nó thay các ký tự đặc biệt thành dấu -
Anh em viết dùm mình dòng này với.

khigiadano
11-12-2011, 17:18
Mình tìm ra rồi.
Chia sẻ cho anh em nào có nhu cầu dùng luôn. hihi.
Thank anh em đã vào xem :angel_not



public string _Title_to_Link(string text)
{
for (int i = 33; i < 48; i++)
{
text = text.Replace(((char)i).ToString(), "");
}
for (int i = 58; i < 65; i++)
{
text = text.Replace(((char)i).ToString(), "");
}
for (int i = 91; i < 97; i++)
{
text = text.Replace(((char)i).ToString(), "");
}
for (int i = 123; i < 127; i++)
{
text = text.Replace(((char)i).ToString(), "");
}
text = text.Replace(" ", "-");
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\p{IsCombiningDiacriticalMarks}+");
string strFormD = text.Normalize(System.Text.NormalizationForm.FormD );
strFormD = regex.Replace(strFormD, String.Empty).Replace('\u0111', 'd').Replace('\u0110', 'D');
strFormD = strFormD.Replace("--", "-");
return strFormD.Replace("--", "-");
}