Tôi đã tạo chuỗi và về bản chất là một danh sách các thứ. Chuỗi này là cái gì đó sẽ được đọc bởi người sử dụng, vì vậy tôi đang cố gắng để hình thành nó độc đáo. Tôi tách danh sách được tạo ra sử dụng dấu phẩy và không gian:Thay thế dấu phẩy cuối cùng trong chuỗi bằng "và"
(a+'').replace(/,/g, ", ");
sản xuất
1, 2, 3, 4
Tuy nhiên, tôi muốn thay đổi dấu phẩy cuối cùng "và", vì vậy mà nó đọc
1, 2, 3, and 4
tôi đã thử những điều sau đây:
((a+'').replace(/,/g, ", ")).replace(/,$/, ", and");
nhưng nó không hoạt động, mà tôi nghĩ là bởi vì đó là chỉ tìm kiếm dấu phẩy ở cuối của chuỗi, chứ không phải là dấu phẩy cuối cùng trong chuỗi, phải không?
Đồng thời, nếu chỉ có 2 mục trong chuỗi, tôi muốn dấu phẩy được thay thế bằng chỉ "và", thay vì "và", để có ý nghĩa ngữ pháp hơn.
Làm cách nào để đạt được những gì tôi đang tìm kiếm?
Performance câu hỏi: đó regex sẽ thực hiện tốt hơn giữa các bạn một và @Toto một? – ColOfAbRiX
Vô cùng triệt để, cảm ơn rất nhiều! – GtwoK
@ColOfAbRiX - Tôi đoán là vks nhanh hơn, thậm chí chúng ta có thể bỏ nhóm chụp (thay bằng '$ &'). Trong kinh nghiệm của tôi regex là tương đối chậm, vì vậy nếu hiệu suất thực sự quan trọng là một thao tác chuỗi ngắn sẽ tốt hơn. – Kobi