private static readonly string[] VietNamChar = new string[] { "aAeEoOuUiIdDyY", "áàạảãâấầậẩẫăắằặẳẵ", "ÁÀẠẢÃÂẤẦẬẨẪĂẮẰẶẲẴ", "éèẹẻẽêếềệểễ", "ÉÈẸẺẼÊẾỀỆỂỄ", "óòọỏõôốồộổỗơớờợởỡ", "ÓÒỌỎÕÔỐỒỘỔỖƠỚỜỢỞỠ", "úùụủũưứừựửữ", "ÚÙỤỦŨƯỨỪỰỬỮ", "íìịỉĩ", "ÍÌỊỈĨ", "đ", "Đ", "ýỳỵỷỹ", "ÝỲỴỶỸ" }; public static string LocDau(string str) { //Thay thế và lọc dấu từng char for (int i = 1; i < VietNamChar.Length; i++) { for (int j = 0; j < VietNamChar[i].Length; j++) str = str.Replace(VietNamChar[i][j], VietNamChar[0][i - 1]); } return str; }Ví dụ string locdau = LocDau("hmclip.net Video clip tổng hợp") Sẽ cho kết quả là: hmclip.net Video clip tong hop
function locdau(obj) { var str; if (eval(obj)) str = eval(obj).value; else str = obj; str = str.toLowerCase(); 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,"-"); /* tìm và thay thế các kí tự đặc biệt trong chuỗi sang kí tự - */ //str= str.replace(/-+-/g,"-"); //thay thế 2- thành 1- str = str.replace(/^\-+|\-+$/g, ""); //cắt bỏ ký tự - ở đầu và cuối chuỗi eval(obj).value = str.toUpperCase(); }Sử dụng hàm này: <asp:TextBox ID="txtTenDangNhap" onkeyup="locdau(this);" runat="server" /> Khi đó txtTenDangNhap sẽ chỉ nhập được không dấu.
CREATE FUNCTION [dbo].[fLocDauTiengViet] ( @strInput NVARCHAR(4000) ) RETURNS NVARCHAR(4000) AS Begin Set @strInput=rtrim(ltrim(lower(@strInput))) IF @strInput IS NULL RETURN @strInput IF @strInput = '' RETURN @strInput Declare @text nvarchar(50), @i int Set @text='-''`~!@#$%^&*()?><:|}{,./\"''='';–' Select @i= PATINDEX('%['+@text+']%',@strInput ) while @i > 0 begin set @strInput = replace(@strInput, substring(@strInput, @i, 1), '') set @i = patindex('%['+@text+']%', @strInput) End Set @strInput =replace(@strInput,' ',' ') DECLARE @RT NVARCHAR(4000) DECLARE @SIGN_CHARS NCHAR(136) DECLARE @UNSIGN_CHARS NCHAR (136) SET @SIGN_CHARS = N'ăâđêôơưàảãạáằẳẵặắầẩẫậấèẻẽẹéềểễệế ìỉĩịíòỏõọóồổỗộốờởỡợớùủũụúừửữựứỳỷỹỵý' +NCHAR(272)+ NCHAR(208) SET @UNSIGN_CHARS = N'aadeoouaaaaaaaaaaaaaaaeeeeeeeeee iiiiiooooooooooooooouuuuuuuuuuyyyyy' DECLARE @COUNTER int DECLARE @COUNTER1 int SET @COUNTER = 1 WHILE (@COUNTER <=LEN(@strInput)) BEGIN SET @COUNTER1 = 1 WHILE (@COUNTER1 <=LEN(@SIGN_CHARS)+1) BEGIN IF UNICODE(SUBSTRING(@SIGN_CHARS, @COUNTER1,1)) = UNICODE(SUBSTRING(@strInput,@COUNTER ,1) ) BEGIN IF @COUNTER=1 SET @strInput = SUBSTRING(@UNSIGN_CHARS, @COUNTER1,1) + SUBSTRING(@strInput, @COUNTER+1,LEN(@strInput)-1) ELSE SET @strInput = SUBSTRING(@strInput, 1, @COUNTER-1) +SUBSTRING(@UNSIGN_CHARS, @COUNTER1,1) + SUBSTRING(@strInput, @COUNTER+1,LEN(@strInput)- @COUNTER) BREAK END SET @COUNTER1 = @COUNTER1 +1 END SET @COUNTER = @COUNTER +1 End SET @strInput = replace(@strInput,' ','-') RETURN lower(@strInput) EndVí dụ: SELECT dbo.fLocDauTiengViet(N'hmclip - Lọc dấu tiếng Việt trong Csharp, javascript và SQL Server') sẽ cho kết quả: hmclip-loc-dau-tieng-viet-trong-csharp-javascript-va-sql-server
© Chia sẻ 2013 . Powered by Blogger . Blogger templates . New Blogger Templates