var str = '{测试测试测试}测试111{测试121212}撒大声地{撒大声地}sadhavbsd' var arr = str.match(/{(.*?)}/g) || [];// ["{测试测试测试}", "{测试121212}", "{撒大声地}"] var container = []; for(var i=0;i<arr.length;i++){ var index = str.indexOf(arr[i]) + arr[i].length; // 对应下标 var len = str.length;// 对应字长 container.push(str.substring(0,str.indexOf(arr[i])))// 截取{}前面部分 container.push(arr[i]);// {}包含部分 str = str.substring(index,len)// {}后面部分再进行遍历 if(str && str.indexOf('{')<0){// 不包含{}符号 container.push(str); } } console.log(container)//["", "{测试测试测试}", "测试111", "{测试121212}", "撒大声地", "{撒大声地}", "sadhavbsd"]