如何使用JavaScript从输入字符串创建数组?

时间:2018-08-30 05:03:25

标签: javascript arrays

当前,我有一个PHP页面返回一些值。数据是这样的:

display: inline-block

如何使用上面的值在Javascript中创建自定义数组,使其与下面的数组相似:

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta charset="utf-8" />
    <style>
        label {
            display: inline-block;
            width: 10%;
        }

        input {
            display: inline-block;
            width: 88%;
        }

    </style>
</head>

<body>
    <form style="width: 500px; border-style:solid; border-color: red;">
        <label for="Txt">Label:</label>
        <input id="Txt" type="text" />
    </form>
</body>

</html>

我已经尝试过08-30-2018, in 08-29-2018, out 08-28-2018, in 08-27-2018, in ,但是它没有像上面那样创建一个数组。 我该怎么办?你能帮助我吗?谢谢!

2 个答案:

答案 0 :(得分:1)

您可以在JavaScript中使用多维数组

var system = [];
var output = "08-30-2018, in\n08-29-2018, out\n08-28-2018, in\n08-27-2018, in";
var items = output.split("\n");
for(i=0; i<items.length; i++){
	var data = items[i].split(",");
	var item = [];
	item.push(data[0].trim());
	item.push(data[1].trim());
	system.push(item);
}
console.log(system);

答案 1 :(得分:1)

您还可以使用正则表达式解析此类输入:

const input = '08-30-2018, in\n08-29-2018, out\n08-28-2018, in\n08-27-2018, in';
const regex = /(\d{2}-\d{2}-\d{4}), (in|out)/g;

let system = [];
let match;
while ((match = regex.exec(input)) !== null) {
    system.push([match[1], match[2]]);
}