我有以下代码用javascript获取输入名称数组键的值:
var input = document.querySelector('input');
var value = input.name.match(/\[(.*?)\]/)[1];
console.log(value);

<input type="text" name="hello[101][]" />
&#13;
现在这很好用。
但我想知道是否有更好的方法...name.match(/\[(.*?)\]/)[1];
获得input name array key value(s)
?就像有没有办法将hello[101][]
字符串转换为一种javascript数组或对象?就像我想要获得所有密钥一样:
<input type="text" name="hello['one'][101]['test'][]" />
答案 0 :(得分:2)
这是一个评估示例
var str = "hello['one'][101]['test'][]",
parts=eval(str.substring(str.indexOf("[")).split("][").join(","))
console.log(parts)
答案 1 :(得分:1)
您可以将正则表达式传递给split()
方法,为您创建一个数组。它可以以完全相同的方式完成。
var arrayOfIntputValues = input.name.split(/\[(.*?)\]/)
但它将返回["hello", "'one'", "", "101", "", "'test'", "", "", ""]
,因此您必须删除空元素。
arrayOfInputVaules.filter(function(x){return x!=''})