验证阵列的所有列是否确定模式

Verify all columns of the array for a determined pattern

本文关键字:是否 模式 阵列 验证      更新时间:2023-09-26

我有以下javascript代码

var list = [
{
  Date : '2014-12-31 12:23:43',
  DateStart: '1980-12-30 23:43:42',
  Name: 'Kate',
  ...
  ...
},
{
  Date : '1978-05-21 23:43:65',
  DateStart: '1973-04-06 12:34:09',
  Name: 'John',
  ...
  ...
}
];

以及以下代码来验证正则表达式模式:

for (var i in list) {
     var data = [];
     if (/('d{4})-('d{2})-('d{2}) ('d{2}):('d{2}):('d{2})/.test(list[i].?)) {
         data.push({Data: list[i].Data });
     }
}

上面代码中i的变量是与数组的每一行进行交互。

如何通过 for 循环与每行和每一列进行交互,而无需在上述代码的问号中指定这一点?

我可以对所有验证日期模式的列执行哪些操作?

使数组date仅保留值

2014-12-31 12:23:43,
1980-12-30 23:43:42,
1978-05-21 23:43:65,
1973-04-06 12:34:09

如何通过 for 循环与每行和每一列进行交互,而无需在上述代码的问号中指定这一点?

您必须指定要访问的字段,口译员还应该如何知道您想要访问的内容?

如果要避免使用索引器,可以使用外部库(如 underscore.js)循环访问集合:

http://underscorejs.org/#each

_.each(list, function(item) { 
  // validate item.Date and item.DateStart here
});

或者,这里有一篇关于这个主题的非常简洁的文章:在 JavaScript 中的数组上为 for-each?

这就是我想要的吗

for (var j = 0; j < list.length; j++) {
        for (p in list[j]) {
            if (/('d{4})-('d{2})-('d{2}) ('d{2}):('d{2}):('d{2})/.test(list[j][p])) {
                data.push({Data: list[j][p] });
            }
        }
    }