使用javascript获取输入数组键值的最佳方法

时间:2017-03-04 17:25:09

标签: javascript arrays

我有以下代码用javascript获取输入名称数组键的值:



var input = document.querySelector('input');
var value = input.name.match(/\[(.*?)\]/)[1];

console.log(value);

<input type="text" name="hello[101][]" />
&#13;
&#13;
&#13;

现在这很好用。

但我想知道是否有更好的方法...name.match(/\[(.*?)\]/)[1];获得input name array key value(s)?就像有没有办法将hello[101][]字符串转换为一种javascript数组或对象?就像我想要获得所有密钥一样:

<input type="text" name="hello['one'][101]['test'][]" />

2 个答案:

答案 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!=''})