0

I have the following javascript code

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',
  ...
  ...
}
];

And the following code to verify for regex pattern:

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 });
}
}

What can I do to all columns be verified for the date pattern?

Making the array date stay only with the values 2014-12-31 12:23:43,1980-12-30 23:43:42,1978-05-21 23:43:65,1973-04-06 12:34:09

3
Contributors
2
Replies
10
Views
2 Years
Discussion Span
Last Post by Troy III
0

If your current list is what you said, to access it would be...

var len = list.length;
for (var i=len-1; i>=0; i--) {  // for removing data
  var data = list[i];
  // check Date existence
  if (!data["Date"]) {
    // do something, for example, alert and remove it
    alert("Invalid date data at index "+i);
    list.splice(i, 1);  // remove the item at index i
  }
  // check Date pattern
  if (!data["Date"].match(/^(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})/)) {
    // do something because date format is invalid
    // you could remove the element as above
  }
  // up until now, the date format is correct
  // BUT it does not guarantee that the value is valid
  // i.e. 1234-99-99 will pass through the above checks
  // you may need to do something
}

Watch out if you are dynamically removing element from an array you are iterating through. The above method would have no problem as long as 1)you iterate from back to front and 2)you do not change the value of iteration variable (i) wihing the loop.

Edited by Taywin

0

if (/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/.test(list[i].?))

What's the dot + questionmark doing there?
Remove that, and come again.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.