2012-03-20 33 views
7

tôi đang sử dụng cụm từ thông dụng: pattern=/([a-zA-Z0-9_\.].*?)=(.*?);/g; có nhiều kết quả phù hợp trong văn bản tôi sử dụng. Bây giờ tôi muốn nội dung sau "=". Tôi đã sử dụng RegExp.$2 nhưng nó chỉ cung cấp một giá trị. Xin hãy giúp tôi để có được giá trị sau khi "=" trong tất cả các trận đấu có sẵn.Cụm từ biểu thức chính quy cho nhiều kết quả phù hợp trong javascript

+0

Làm thế nào bạn đang sử dụng các biểu thức chính quy? – gilly3

+0

pattern.exec (script_txt); – user1275375

Trả lời

9

Bạn phải lặp qua các trận đấu trong một vòng lặp while:

var match = null; 
while (match = pattern.exec(script_txt)) { 
    // Do something with match[2] 
} 
+0

Nó cũng hoạt động với RegExp. $ 2 Thankyou – user1275375

+1

Ok, điều này thật tuyệt vời. Bạn vui lòng giải thích lý do tại sao nó hoạt động? Tôi đã thấy kỹ thuật này được sử dụng ở đây trước đây, nhưng sau đó không thể tìm thấy nó sau này. Tôi đã xem qua một số tài liệu và không thể tìm thấy bất cứ điều gì. Tại sao bạn nhận được các kết quả khác nhau từ cùng một phương thức gọi chống lại cùng một dữ liệu? Nó chỉ hoạt động trong vòng lặp 'while'? – gilly3

+2

Từ tài liệu ['exec'] (http://msdn.microsoft.com/en-us/library/windows/apps/z908hy33 (v = vs.94) .aspx): Nếu phương thức' exec' không thực hiện ' t tìm thấy một trận đấu, nó trả về NULL (đây là lý do tại sao nó có thể được đưa vào một vòng lặp 'while'). Nếu nó tìm thấy một kết quả phù hợp, nó sẽ trả về một mảng ... và sửa đổi đối tượng 'RegExp' toàn cục. ** Nếu cờ toàn cầu được đặt cho cụm từ thông dụng, 'exec' tìm kiếm chuỗi bắt đầu tại vị trí được chỉ ra bởi giá trị' lastIndex' **. Nếu cờ toàn cục không được đặt, 'exec' ... tìm kiếm từ đầu chuỗi. –

Các vấn đề liên quan