Tôi đang cố gắng lấy văn bản liên kết bằng regex. có thể có một số liên kết có thể khớp với mẫu và tôi muốn có một liên kết xa nhất cho đến ngày thứ 4. Đây là mã JS của tôi:Biểu thức chính quy Javascript - vòng lặp vô hạn exec
var level=1;
while (_match = /<a href="http:\/\/www.mysite.com\/x\/(?:.*)>(.*)<\/a>/img.exec(_html)){
if (level < 5) (_anchor_text=_match[1]);
level ++;
}
Vấn đề là mã này đi vào vòng lặp vô hạn trên IE (hoạt động tốt trên FF), mặc dù mẫu tồn tại. Bất kỳ trợ giúp được đánh giá cao.
Mã này thực sự đã từng làm việc lên đến FF3.6, vì đối tượng RegExp cùng đã được tái sử dụng trong mọi lần lặp (tuân thủ ES3). Nhưng sau đó ES3 đã được thay thế bởi ES5, mà thay đổi cách RegExp literals được xử lý: "Regular literals biểu hiện bây giờ trả về một đối tượng duy nhất mỗi khi chữ được đánh giá." Hiển thị hiệu quả cờ 'g' vô dụng trong trường hợp của bạn. http://es5.github.com/#E Một lần nữa, IE đã đi trước thời đại của nó. – Robert