Tôi muốn đạt được một cách để có được tất cả nội dung giữa một thẻ mở và thẻ đóng của nó. Vấn đề là đôi khi tôi có thể có khoảng lồng nhau và tôi muốn chắc chắn rằng regex của tôi không dừng lại một khoảng kết thúc đầu tiên nó nhìn thấy.Sử dụng XRegExp.matchRecursive cho các nhịp lồng nhau
Để xem vấn đề cái nhìn của tôi lúc này: Regex101 : nested span
Tôi muốn chắc chắn rằng tôi nhận được tất cả mọi thứ giữa mở và thẻ đóng. không có vấn đề bao nhiêu </span>
Tôi có thể tìm thấy bên trong.
Tôi đã tìm thấy một thư viện được thực hiện bởi Steven Levithan mà có thể đạt được mong muốn của tôi. Vấn đề tôi có là ví dụ là cơ bản và tôi không chắc mình có thể đạt được những gì tôi muốn.
Tôi đang sử dụng phương pháp XregExp.matchRecursive. Trong ví dụ, họ đưa ra một thẻ bắt đầu và một thẻ kết thúc. Thẻ bắt đầu của tôi hơi phức tạp, trông giống như sau: <span style=\\?"color:([a-zA-Z\s]*?)\\?">
. Vấn đề là khi tôi thực hiện phương pháp này với dấu phân cách này, tôi nhận được lỗi này: chuỗi chứa ký tự không cân bằng. Chuỗi thử nghiệm là:
<p style=\"text-align:justify\">
<span style=\"font-size:12pt\">
<span style=\"color:Green\">
<span style=\"font-family:Verdana\">There is some content for a mm advertisment.There is some co</span>
<span style=\"font-family:Times New Roman\">ntent for a mm advertisment.</span>
</span>
</span>
</p>
Tôi nghĩ rằng vấn đề của tôi là do regex tôi sử dụng làm dấu phân cách bắt đầu. Theo giải thích trong các doc chúng ta nên thêm một mức độ thoát ngược dấu gạch chéo ngược trong regex. Đó là lý do tại sao tôi thử regex này như dấu phân cách bắt đầu: <span style=\\\\?"color:([a-zA-Z\\s]*?)\\\\?">
. Vẫn không làm việc. Tôi không thấy làm thế nào tôi có thể làm để nói với phương pháp này để tìm thấy tất cả mọi thứ giữa span có thuộc tính phong cách màu sắc và thẻ đóng của mình.
Có thể ai đó có giải pháp?
Tại sao bạn lại sử dụng cụm từ thông dụng cho điều này? Nếu đó là HTML hợp lệ, vui lòng sử dụng các hàm DOM. –
Tất nhiên với jquery tôi có thể làm điều đó trong một dòng mã với phương thức html(). Nhưng tôi cần phải làm điều này phía máy chủ trong một môi trường Wakanda. – Ganbin
Tôi không nói về jquery, JavaScript thuần túy cũng có thể làm điều này; chắc chắn nó cũng có sẵn trong môi trường máy chủ. –