如何验证字符串/ 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*)\)\/$/;
答案 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