Chuyển tiếng Việt có dấu thành tiếng Việt không dấu

Continuing the discussion from Beta: Blog dành cho các bài viết trong DNH (React.js app):

Nói chung là thuật toán thì rất dễ nhưng liệt kê ra tất cả trường hợp hơi khó. Mọi người có ai có sẵn hàm không cho mình tham khảo với (ngôn ngữ gì cũng được, Javascript càng tốt)

3 Likes
function bodauTiengViet(str) {
    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(/\W+/g, ' ');
    // str = str.replace(/\s/g, '-');
    return str;
}

2 dòng mình để vào chú thích là chuyển khoảng trắng thành gạch ngang.

4 Likes

Quá nhanh quá nguy hiểm :slight_smile:

Nên nhớ còn trường hợp unicode tổ hợp nữa nhé.

Trường hợp đó thì mình viết sẵn package chuyển thành unicode thường rồi http://npm.im/vietnamese-unicode-toolkit

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?