Lấy tên file (không có phần mở rộng) như thế nào cho hợp lý?

Cho mình hỏi là muốn xóa phần mở rộng của 1 file thì cách nào hợp lý?

Mình có tham khảo có 2 cách này, mọi người góp ý dùm mình với.

var path = document.getElementById("second").value;
var tmp = path.split(/(\\|\/)/g);
var filename = tmp.pop().toLowerCase();
// so sánh
var dt = filename.split('.').slice(0, -1).join('.');
var dtd = filename.replace(/\.[^/.]+$/,"");

Có vẻ cả 2 cách đều đúng nhưng chưa biết cách nào nhanh hơn.

chạy đúng là đc, tốc độ chênh lệch cũng k đáng kể lắm

Còn tùy số lượng file, cấu hình máy/vps ntn.
Vài chục nghìn file thì thôi code đại cho xong, thời gian tối ưu cho nhanh thì code chạy xong từ mùa quýt nào rồi. Chênh lệch vài nanosecond ko đáng để tối ưu.

2 Likes

Dùng cách 2 regex sẽ nhanh hơn từ 2x - 2.5x :slight_smile: (Chrome) (ft. perf.zone)

Phần lấy filename vẫn dùng được regex nhanh hơn cách 1 (chủ yếu nằm ở lệnh gọi split sinh ra mảng mới). Nhìn chung regex trực tiếp vẫn nhanh hơn là đi split chuỗi do phải tạo chuỗi trung gian.

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