2012-06-12 28 views
10

Tôi đang cố gắng xây dựng trình định dạng văn bản sẽ thêm thẻ p và br vào văn bản dựa trên ngắt dòng. Tôi hiện có điều này:Javascript thay thế nhóm phù hợp

s.replace(/\n\n/g, "\n</p><p>\n"); 

Tác phẩm nào tuyệt vời để tạo đoạn kết thúc và bắt đầu. Tuy nhiên, cố gắng tìm kiếm
trường hợp không hoạt động tốt. Cố gắng để làm một sự thay thế nhóm phù hợp không hoạt động, vì nó bỏ qua các dấu ngoặc đơn và thay thế toàn bộ trận đấu regex:

s.replace(/\w(\n)\w/g, "<br />\n"); 

tôi đã cố gắng loại bỏ các tùy chọn g (vẫn còn thay thế toàn bộ trận đấu, nhưng chỉ trên trận đấu đầu tiên). Có một cách khác để làm điều này?

Cảm ơn!

Trả lời

18

Bạn có thể chụp những phần bạn không muốn thay thế và bao gồm chúng trong chuỗi thay thế với $ tiếp theo là số nhóm:

s.replace(/(\w)\n(\w)/g, "$1<br />\n$2"); 

See this section trong tài liệu MDN để biết thêm về đề cập đến các bộ phận của chuỗi đầu vào trong chuỗi thay thế của bạn.

+1

Tuyệt vời, hoạt động hoàn hảo và có ý nghĩa! – Asherlc

2

Catch các nhân vật xung quanh cũng:

s.replace(/(\w)(\n\w)/g, "$1<br />$2"); 
Các vấn đề liên quan