30/09/2018, 20:15

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 diễn đàn (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)

null viết 22:23 ngày 30/09/2018
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.

Khoa Nguyen viết 22:23 ngày 30/09/2018

Quá nhanh quá nguy hiểm

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

Bài liên quan
0