您应该使用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
,进一步拆分其元素,或做任何你想要的东西。