2010-08-05 23 views
13

Tôi có chuỗi này:Make mảng từ regex

{example1}{example2}{example3} 

Đây là biểu hiện thường xuyên để tìm những {anything in it}:

/\{.*?\}/g 

Bây giờ tôi muốn biết làm thế nào đặt chúng trong một mảng để Tôi có thể làm một tuyên bố for in.

Tôi muốn một mảng giống như array("{example1}","{example2}","{example3}");?

+2

Nếu bạn có một Mảng thực tế, bạn nên sử dụng vòng lặp 'for' đơn giản hơn là' cho ... trong', có thể cung cấp cho bạn nhiều hơn bạn mặc cả cho: tất cả tiện ích mở rộng Nguyên mẫu 'Array' sẽ được liệt kê, cũng như các mục trong mảng. –

+0

Bạn không nên lặp lại các mảng bằng 'for-in'. Sử dụng vòng lặp 'for' kiểu C, tốt nhất là. – strager

Trả lời

12
your_array = string.match(pattern) 

http://www.w3schools.com/jsref/jsref_match.asp

+0

Điều này sẽ tạo ra một mảng như 'mảng (" {example1} "," {example2} "," {example3} ");'? – Adam

+2

Đó là javascript, chỉ cần thử nó trong trình duyệt địa phương thân thiện của bạn/firebug ... – Xzhsh

+0

@CIRK ya. http://jsfiddle.net/PKpyn/ (với cảnh báo kết quả) – hookedonwinter

10
var matches = '{example1}{example2}{example3}'.match(/\{.*?\}/g); 
// ['{example1}', '{example2}', '{example3}'] 

See it here.

Ngoài ra, bạn có thể sử dụng vòng lặp for để lặp qua mảng. for in có thể có tác dụng phụ, chẳng hạn như thu thập thêm nhiều thứ để lặp qua chuỗi nguyên mẫu. Bạn có thể sử dụng hasOwnProperty(), nhưng vòng lặp for dễ dàng hơn nhiều.

Để thực hiện, bạn cũng có thể lưu trữ thuộc tính length trước khi đưa nó vào điều kiện for.

+0

đẹp, đây là ví dụ anh ấy có thể học hỏi từ :) –

+0

hm nó nói "Bạn cuối cùng đã bỏ phiếu cho câu trả lời này 9 giờ trước Phiếu bầu của bạn hiện đã bị khóa trừ khi câu trả lời này được chỉnh sửa" –