如何验证字符串值的格式为“\/Date(1239018869048)\/”?
如何验证字符串/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*)\)\/$/;
How do I validate that a string/JSON value is in the format "\/Date(1239018869048)\/"
?
I'm iterating through a JSON object, I know I may have a serialized JSON date string but because the JSON object is dynamic, I don't know which property is the serialized JSON date.
So I want to know if a JSON property value will validate to the format of a JSON serialized date.
Update #1
It would be nice to check if it's an instance of a string before you use the regular expression because an integer will throw an exception. This is in addition to the answer @vzwick gave. Thanks once again.
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
}
}
}
Update #2
After tryout different values, i discovered that we have negative numbers. So the pattern can
now look like;
pattern = /^\/Date\((-?\d*)\)\/$/;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
给你,伙计:
Here you go, mate:
如果您的意思是验证字符串值是否会序列化为日期,则可以使用 JavaScript 对正则表达式的支持。
请参阅此处 http://www.w3schools.com/jsref/jsref_match.asp
如果您意思是验证反序列化的值是日期,您可以使用Javascript的instanceof运算符。
请参阅此处 https://developer.mozilla.org/en/JavaScript/Reference /运算符/特殊/实例
If you mean validate that a string value will serialise into a date, you can use JavaScripts support for regular expressions.
See here http://www.w3schools.com/jsref/jsref_match.asp
If you mean validate that a de-serialised value is a date, you can use Javascripts instanceof operator.
See here https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/instanceof