您應該使用split
在正則表達式上拆分的能力,然後將它們保留在結果中。要做到這一點,只需在正則表達式中放置一個捕獲組。在你的情況,你會的東西在雙引號「分裂」:
pieces = test.split(/(".*?")/)
^^^^^^^ CAPTURE GROUP
// ["", ""(22.0796251, 82.13914120000004),36"", ", ", ""(22.744108, 77.73696700000005),48"", ""]
問號是,以確保它不會通過輸入最後一個引號吃光了所有的字符,直到。它使*
量詞「非貪婪」。
現在擺脫垃圾(空字符串和", "
)的:
pieces = pieces . filter (function(seg) { return !/^[, ]*$/.test(seg); })
// ["(22.0796251, 82.13914120000004),36", "(22.744108, 77.73696700000005),48"]
接下來,你可以打破每一塊與另一個正則表達式,如
arrays = pieces . map(function(piece) { return piece.match(/(.*), (.*)/).slice(1); });
// [["(22.0796251, 82.13914120000004)", "36"], ["(22.744108, 87.73696700000005)", "48"]]
的slice
是擺脫數組的第一個元素返回match
,這是整個匹配,我們不需要這個。
現在打印出arrays
,進一步拆分其元素,或做任何你想要的東西。