Điều này có tồn tại không?JavaScript tương đương với chuỗi của Ruby # scan
tôi cần phải phân tích một chuỗi như:
the dog from the tree
và nhận được một cái gì đó giống như
[[null, "the dog"], ["from", "the tree"]]
mà tôi có thể làm trong Ruby với một RegExp và String#scan
.
JavaScript của String#match
không thể xử lý này vì nó chỉ trả lại những gì RegExp là lần xuất hiện và không phải là nhóm chụp, vì vậy nó sẽ trả về một cái gì đó giống như
["the dog", "from the tree"]
Bởi vì tôi sử dụng String#scan
nhiều lần trong ứng dụng của Ruby của tôi, nó sẽ là tốt đẹp nếu có một cách nhanh chóng để nhân rộng hành vi này trong cổng JavaScript của tôi.
EDIT: Đây là RegExp Tôi đang sử dụng: http://pastebin.com/bncXtgYA
Tôi đã thêm mã này vào mã của mình và trực tiếp thay thế '.match' thành' .scan' nhưng vẫn không hoạt động. Đây là RegExp tôi đang sử dụng: http://pastebin.com/bncXtgYA (chuỗi kiểm tra: '" con chó trong cây "') Tôi sao chép RegExp trực tiếp từ Ruby và tôi mới vào JS RegExp để có thể là một số vấn đề với nó. – itdoesntwork
"* không hoạt động *" là vô nghĩa. Tôi đã thử '" con chó trong cây ".scan (/ (?: (Trong | thành | đến | tại | từ))? ((? :(?: the | a | an))? (?: \ D + \. | tất cả \.)? (?: \ w + | '[a-zA-Z0-9 \ s] *?'))/gi) 'và có' [[không xác định, "con chó"], [" trong "," cây "]]'. – melpomene
Ah, xin lỗi, tôi là một dum-dum và tôi đã không đọc đầu ra một cách chính xác. Cảm ơn! – itdoesntwork