如何验证字符串值的格式为“\ / Date(1239018869048)\ /”?

时间:2011-09-30 09:15:27

标签: javascript regex json validation date

如何验证字符串/ JSON值的格式为"\/Date(1239018869048)\/"

我正在迭代一个JSON对象,我知道我可能有一个序列化的JSON日期字符串,但由于JSON对象是动态的,我不知道哪个属性是序列化的JSON日期。

所以我想知道JSON属性值是否会验证JSON序列化日期的格式。

更新#1

在使用正则表达式之前检查它是否是字符串的实例会很好,因为整数会引发异常。这是@vzwick给出的答案的补充。再次感谢。

json_obj = { 'foo' : 'bar', 'baz' : '/Date(1239018869048)/' }

pattern = /^\/Date\((\d*)\)\/$/;
for(e in json_obj) {
    if (json_obj[e].constructor === String) {
      if (json_obj[e].match(pattern)) {
        // date found
      }
    }
}

更新#2

尝试不同的值后,我发现我们有负数。所以模式可以 现在看起来像;

pattern = /^\/Date\((-?\d*)\)\/$/;

2 个答案:

答案 0 :(得分:4)

你去,伙计:

json_obj = { 'foo' : 'bar', 'baz' : '/Date(1239018869048)/' }

pattern = /^\/Date\((\d*)\)\/$/;
for(e in json_obj) {
    if (json_obj[e].match(pattern)) {
        // date found
    }
}

答案 1 :(得分:1)

如果您的意思是验证字符串值将序列化为日期,则可以使用JavaScripts支持正则表达式。

请参阅此处http://www.w3schools.com/jsref/jsref_match.asp

如果您的意思是验证反序列化值是一个日期,您可以使用Javascripts instanceof运算符。

请参阅此处https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/instanceof