【发布时间】:2020-01-14 19:39:49
【问题描述】:
我正在尝试在 Javascript 中拆分一个字符串(带有半 json 对象)以在 }, { 上拆分,同时我想保留花括号,为此我想使用 zerowidth 回溯和 zerowidth 前瞻作为described here
"{}, {a}, {c:d}".split(/(?<=}), ?(?={)/)
在 chrome 中,这可以按预期工作,并在开始和结束时很好地生成带有花括号的三个字符串元素的数组,但是在 Safari 和 Firefox 中,这会失败,因为未实现后向正则表达式是否有保留花括号的好方法与分裂?我试过了:
"{}, {a}, {c:d}".split(/(}), ?({)/)
但这会拆分每个字符。
【问题讨论】:
-
试试:
"{}, {a}, {c:d}".split(/, *(?={)/) -
@anubhava 您的模式将匹配
, {a}, {c:d},尽管 OP 的正则表达式不匹配。 see here -
有什么理由不能只用逗号分割吗?
-
@MonkeyZeus 实际上是一个好问题。有些元素确实有逗号的 `{a:2, e:'f'}
标签: javascript regex split lookbehind