有一组元素,它们看起来像这样:
<div>
<input type="text" name="nameOne_aaa">
<input type="text" name="nameOne_bbb">
<input type="text" name="nameOne_ccc">
<input type="text" name="nameOne_ddd">
</div>
<div>
<input type="text" name="nameTwo_aaa">
<input type="text" name="nameTwo_bbb">
<input type="text" name="nameTwo_ccc">
<input type="text" name="nameTwo_ddd">
</div>
如何从中组装一个对象,这种类型:
{
"nameOne": {
"aaa": "",
"bbb": "",
"ccc": "",
"ddd": ""
},
"nameTwo": {
"aaa": "",
"bbb": "",
"ccc": "",
"ddd": ""
}
}
其中arr[n]- 键等于属性中的值(之前name的部分),值 ( ) 等于另一个对象,
其中- 键等于属性(之后的部分),值等于this '一个或 _arr[n][n]arr[n][n][name] _valueinputtextarea
(*1):
.name.match(/^(.+?)_(.+)$/)-^字符串的开头,$- 字符串的结尾。.点匹配任何字符,加+号表示“一次或多次”。在这种情况下,match 返回一个找到的匹配数组。假设 nameTwo_aaa 将返回他们的字符串
["nameTwo_aaa", "nameTwo", "aaa"]- 从那里你可以在索引 [1] 和 [2] 处获得第二个和第三个元素Ps 是的,使用 split 会更有意义,就像在下一个答案中一样!)
像这样,例如: