除了大括号外,拆分字符串

时间:2015-06-08 12:33:27

标签: javascript regex

我正在尝试在setTimeout上拆分字符串,但如果","位于",",我不想拆分。没有嵌套的大括号。

这是我要拆分的字符串:

  

EmbiBISupplierKPIResult_EditArea00001,EmbiBISupplierKPISearch,partyId = E10021& economicAreaPartyIds = {DPP_20246,DPP_14726}& economicId = {DPP_20246,DPP_14726}& requestedDateSearchType = ACTUAL_WEEK

这是我期望的结果:

"{}"

有正则表达式吗?

2 个答案:

答案 0 :(得分:3)

您可以使用match并明确指出大括号之间部分的可选匹配:

var parts = s.match(/(\{[^{}]*\}|[^,{}]+)+/g)



var s = 'EmbiBISupplierKPIResult_EditArea00001,EmbiBISupplierKPISearch,partyId=E10021&economicAreaPartyIds={DPP_20246, DPP_14726}&economicId={DPP_20246, DPP_14726}&requestedDateSearchType=ACTUAL_WEEK';

var parts = s.match(/(\{[^{}]*\}|[^,{}]+)+/g)

document.querySelector('pre').innerHTML = JSON.stringify(parts,null,'\t');

<pre id=result></pre>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

您可以使用以下内容:

,(?=(?:[^{}]*{[^{}]*})*[^{}]*$)

请参阅DEMO