基于分隔符/方括号的实例创建数组
Create array based on instance of delimiter/square-brackets
我有一个字符串,我想创建一个偶数出现"[]"的数组
"Match[0][a][5][b][0][d][2]"
我想将它们拆分,并在"[]"的实例的基础上使用此字符串创建一个数组。数组中的每个元素必须有两个"[]"出现,下一个元素必须有另外两个"[]"出现。换句话说,我想创建一个数组,甚至出现"[]"
我想用字符串做一个数组,比如:
["Match[0]['a']", "Match[0]['a'][5]['b']", "Match[0]['a'][5]['b'][0]['d']"]
使用javascript/jQuery
我试过这场比赛,但我只打到现在。
// ['part1.abc', 'part2.abc', 'part3.abc', 'part4']
'part1.abc.part2.abc.part3.abc.part4'.match(/[^.]+('.[^.]+)?/g);
您可以获取数组中的各个片段,然后处理结果,直到它具有您想要的形式。例如:
var str = "Match[0][a][5][b][0][d][2]";
var result = [];
str.split(/[']'[]{1,2}/).slice(0,-1).reduce(function(acc,item, index) {
acc += '[' + (isNaN(item) ? "'" + item + "'" : item) + ']';
if (index %2 === 0 && index !== 0) {
result.push(acc);
}
return acc;
});
console.log(result) // ["Match[0]['a']", "Match[0]['a'][5]['b']", "Match[0]['a'][5]['b'][0]['d']"]
您可以使用match(/'[.']/g)
获得每个括号,然后通过二乘二的方式组合数组。
var matches = "Match[0][a][5][b][0][d][2]".match(/'[(.)']/g);
var result = [];
for (var i = 0; i < matches.length; i += 2) {
var brackets = '';
for(var j = 0; j< i; j++) {
brackets += matches[j];
}
result.push("Match" + brackets);
}
result.shift();
哇,太有趣了:)。。。尝试api,看看每个人是如何解决它的。这就是我尝试的,看看这是否有帮助。
str = "STR[1][3][4d][re]"
var re=/'['w+']/g;
var mat = str.match(re);
var ar = [];
for(i=2; i<= mat.length; i=i+2){
ar[ar.length] = "STR" + mat.slice(0,i).join("")
}
console.dir(ar)
相关文章:
- 实例创建(JS)
- 如何基于数组值创建新实例
- 代码挑战:创建一个跟踪对象实例总数的类Foo
- JavaScript:如果现有对象被实例化为具有特定值,如何创建警报
- 用javascript创建另一个对象的实例
- 单击按钮创建多实例jQuery UI对话框
- 如何确定 HTML 元素是使用哪个实例创建的
- 创建一个类,该类使用es6类语法将Function对象创建为实例
- 调用函数和创建函数实例之间的Javascript差异
- setTimeout是否创建函数实例
- 基于分隔符/方括号的实例创建数组
- Ember.js:如何使用模型的单个实例创建路由/控制器
- 从继承的实例创建 JavaScript 基类对象
- 对象的等效实例.创建和原型链
- 这是正常的行为,为每一个Firefox窗口,我的插件的另一个实例创建
- Aurelia自定义元素实例创建
- 为多个实例创建一个jquery代码
- 是否更改构造函数's属性的实例创建后会影响实例吗?如果是,那么如何
- 实例创建
- 烬数据没有为新实例创建id