Trong bài viết này, chúng tôi xin hướng dẫn bạn cách lấy tên tệp không có phần mở rộng từ đường dẫn trong Node. js
1. Nhập mô-đun path
bằng cách sử dụng
const path = require['path'];
2. Sử dụng phương thức path.extname[]
với đường dẫn bạn muốn lấy tên tệp làm đối số để lấy phần mở rộng tệp. Chúng ta cần biết phần mở rộng của tệp để có thể loại bỏ nó trong bước tiếp theo
3. Sử dụng phương thức path.basename[]
với đường dẫn và đối số extension
tùy chọn để phần mở rộng tệp sẽ bị xóa chỉ để lại tên tệp
const path = require['path'];
1 để lặp qua mảng const path = require['path'];
2, nhưng bạn có thể sử dụng bất kỳ phương pháp nào khác từ bài viết sau Để lấy tên tệp không có đường dẫn, hãy gọi phương thức replace[]
với biểu thức chính quy sau. /^.*[\\\/]/
làm tham số đầu tiên và một chuỗi rỗng làm tham số thứ hai
Phương thức sẽ trả về một chuỗi chỉ chứa tên tệp
Đối với giải pháp không phải regex, hãy cuộn xuống đoạn mã tiếp theo
Chúng tôi đã tạo một hàm có thể sử dụng lại, có đường dẫn đầy đủ và trả về tên tệp
Ta truyền 2 tham số sau vào String. phương pháp thay thế
- Một biểu thức chính quy mà chúng tôi muốn so khớp trong chuỗi
- Sự thay thế cho khớp của biểu thức chính quy - trong trường hợp của chúng tôi là một chuỗi trống, vì chúng tôi muốn xóa mọi thứ cho đến tên tệp
Các dấu gạch chéo về phía trước đánh dấu sự bắt đầu và kết thúc của biểu thức chính quy
Ký tự dấu mũ ^
khớp với phần đầu của đầu vào [phần đầu của chuỗi]
Dấu chấm .
khớp với bất kỳ ký tự đơn nào và dấu hoa thị *
khớp với ký tự trước đó không hoặc nhiều lần hơn
Dấu ngoặc vuông []
được gọi là một lớp ký tự và trong lớp ký tự, chúng tôi khớp dấu gạch chéo ngược và dấu gạch chéo lên
Chúng tôi đã phải thoát khỏi dấu gạch chéo ngược và dấu gạch chéo lên bằng một dấu gạch chéo ngược khác, bởi vì ký tự dấu gạch chéo ngược có một ý nghĩa đặc biệt trong các biểu thức chính quy
Trong toàn bộ, biểu thức chính quy khớp với dấu gạch chéo xuôi hoặc ngược và bất kỳ ký tự nào ở đầu chuỗi cho đến dấu gạch chéo xuôi hoặc ngược cuối cùng
Nếu bạn cần trợ giúp để đọc một biểu thức chính quy, hãy đánh dấu trang tóm tắt biểu thức chính quy này từ MDN. Đó là cái tốt nhất hiện có
Điều này sẽ hoạt động cho cả đường dẫn windows [dấu gạch chéo ngược] và Unix [dấu gạch chéo về phía trước]
Phương thức replace
không thay đổi chuỗi gốc nên bạn phải gán kết quả cho một biến. Các chuỗi là bất biến trong JavaScript
Ngoài ra, bạn có thể sử dụng phương pháp substring
Lấy tên tệp không có đường dẫn bằng substring[]
Sử dụng phương pháp substring[]
để lấy tên tệp mà không cần đường dẫn, e. g. fullPath.substring[fullPath.lastIndexOf['/'] + 1]
. Phương thức substring
sẽ trả về một chuỗi mới chỉ chứa các ký tự sau dấu gạch chéo cuối cùng
Tham số duy nhất chúng tôi chuyển đến Chuỗi. phương thức chuỗi con là chỉ mục của ký tự đầu tiên được đưa vào chuỗi được trả về
Chúng tôi đã sử dụng Chuỗi. lastIndexOf để lấy chỉ mục của dấu gạch chéo cuối cùng trong chuỗi và thêm /^.*[\\\/]/
1 vào kết quả vì chúng tôi muốn loại trừ dấu gạch chéo cuối cùng khỏi kết quả
Lưu ý rằng phương pháp này chỉ xử lý các đường dẫn tệp có dấu gạch chéo về phía trước. Nếu bạn cần xử lý dấu phân cách dấu gạch chéo ngược, bạn có thể cập nhật đối số mà chúng tôi đã chuyển đến /^.*[\\\/]/
2. Nếu bạn cần xử lý cả hai, hãy sử dụng phương thức replace
với biểu thức chính quy từ đoạn mã đầu tiên
Phương thức /^.*[\\\/]/
4 trả về chỉ số của lần xuất hiện cuối cùng của một chuỗi con trong một chuỗi
Nếu chuỗi con không được chứa trong chuỗi, phương thức sẽ trả về /^.*[\\\/]/
5 và phương thức substring
sẽ trả về toàn bộ chuỗi
Nếu môi trường của bạn là Node. js, bạn có thể sử dụng mô-đun /^.*[\\\/]/
7 tích hợp
Lấy tên tệp không có đường dẫn bằng path[]
Để lấy tên tệp không có đường dẫn trong Nút. js
- Nhập mô-đun
/^.*[\\\/]/
7 - Truyền chuỗi đường dẫn đầy đủ cho phương thức
/^.*[\\\/]/
9 - Hàm sẽ trích xuất tên tệp từ đường dẫn đầy đủ
Phương thức ^
0 trả về phần cuối cùng của đường dẫn
Nó lấy đường dẫn đủ điều kiện làm tham số, trích xuất và trả về tên tệp
Bạn chọn cách tiếp cận nào là vấn đề sở thích cá nhân. Nếu tôi chỉ cần xử lý các dấu phân cách tiến hoặc lùi trong đường dẫn, tôi sẽ sử dụng phương thức substring
vì nó dễ đọc và có thể được sử dụng trong cả Nút. js và trình duyệt