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

发布于 2024-12-07 09:12:38 字数 701 浏览 1 评论 0原文

如何验证字符串/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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

很快妥协 2024-12-14 09:12:38

给你,伙计:

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

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

Here you go, mate:

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

pattern = /^\/Date\((\d*)\)\/$/;
for(e in json_obj) {
    if (json_obj[e].match(pattern)) {
        // date found
    }
}
糖粟与秋泊 2024-12-14 09:12:38

如果您的意思是验证字符串值是否会序列化为日期,则可以使用 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文