Loại bỏ dấu tiếng việt trong chuỗi bằng JavaScript

80.467

Trên trang web biện pháp chuyển một một chuỗi tiếng việt có dấu sang không dấu bằng hàm JavaScript thường ít được sử dụng hơn so với các ngôn ngữ khác như php. Điển hình là việc lọc dấu tiếng việt trong các tiêu đề bài viết, các tag , phân loại để làm link URL thân thiện trong các cổ máy tìm kiếm và người sử dụng.

Loại bỏ dấu tiếng việt trong chuỗi bằng JavaScript
Tuy nhiên do các hàm JavaScript được xử lý ngay trên trình duyệt web nên sẽ tiện lợi hơn trong một số trường hợp, bạn hoàn toàn có thể thêm bớt những gì mình muốn vào trong chuỗi tiếng việt sau khi xử lý vì thế bạn có thể kiểm soát tốt độ dài của các đường link .

Có nhiều giải thuật để loại bỏ dấu trong chuỗi nhưng đơn giản, ngắn gọn và hiệu quả nhất là sử dụng hàm replace trong JavaScript.

Nhiệm vụ của hàm replace là tìm và thay thế các kí tự trong chuỗi bằng các kí tự mới vì thế để loại dấu ta chỉ cần tìm các kí tự có dấu và thay bằng các kí tự không dấu tương ứng . Nói chính xác hơn là tìm các nguyên âm có dấu và thay bằng các nguyên âm không dấu .

Ví dụ : Tìm các nguyên âm à á ạ ả ãâ ầ ấ ậ ẩ ẫ ă ằ ắ ặ ẳ ẵ sau đó thay bằng a ta viết như sau :

str= str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g,”a”);
Giải thích:
– str đứng trước dấu = là chuỗi chứa kết quả sau khi xử lý bằng hàm replace .
– str trước replace là chuỗi cần xử lý.
– replace là tên hàm:  replace(/chuỗi cần tìm/tham số, “chuỗi thay thế”);
– Dấu | dùng để phân cách các kí tự khác nhau trong trường hợp cần tìm nhiều kí tự.
– g là tham số ( Global – toàn cục ) . Nếu bạn không thêm vào tham số g thì hàm chỉ tìm và thay thế kí tự đầu tiên trong chuỗi trong trường hợp chuỗi có nhiều kí tự trùng nhau . Ngoài ra còn có tham số i để tìm kiếm các kí tự mà không cần phân biệt chữ hoa hay thường . Bạn có thể kết hợp 2 tham số này trong hàm bằng cách viết liền chúng lại với nhau như : gi
– Để tìm hiểu kỷ hơn về hàm replace bạn có thể xem tại đây

[codes=js]
[/codes]Demo
Xem tại đây

Chú Ý:
– Để hàm xử lý được chuỗi nhập vào phải là chuỗi Unicode, khai báo :

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

– Trình độ viết code của mình còn rất kém có gì sai sót mong các huynh, tỉ chỉ dạy .