Javascript 如何验证字符串值的格式为\/日期(1239018869048)\/";?

Javascript 如何验证字符串值的格式为\/日期(1239018869048)\/";?,javascript,regex,json,validation,date,Javascript,Regex,Json,Validation,Date,如何验证字符串/JSON值的格式是否为“\/Date(1239018869048)\/” 我正在迭代一个JSON对象,我知道我可能有一个序列化的JSON日期字符串,但由于JSON对象是动态的,我不知道哪个属性是序列化的JSON日期 所以我想知道JSON属性值是否会验证为JSON序列化日期的格式 更新#1 在使用正则表达式之前,最好先检查它是否是字符串的实例,因为整数会引发异常。这是对@vzwick给出的答案的补充。再次感谢 json_obj = { 'foo' : 'bar', 'baz' :

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

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

看这里


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

看这里

给你,伙计:

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

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

你是说那根绳子吗?你是说作为regexp的文本字符串吗?或者,您是指文字“日期”开括号、数字字符串x字符长、右括号?我想知道字符串值是否采用这种格式:/Date(1239018869048)/。如果“在这种格式中”,您的意思是“匹配此regexp”,您只需对其进行比较,因为其中没有动态模式。如果你不是这个意思,那恐怕我是糊涂了。对于regexp匹配:或者只是pattern.test(“某些字符串”)示例:/^[0-9]+$/.test(“12345”),我喜欢与该格式匹配的正则表达式。注:括号内的数字是动态的,只能用数字表示。我知道正则表达式的存在。我喜欢正则表达式。您可以对Javascript正则表达式进行一些基本测试。这里可能值得向OP提及:如果您希望它完全匹配,可以使用:/^\/Date((\d*))\/$/只匹配仅包含该有效格式的字符串。如果没有^和$,它将匹配任何包含该格式的字符串。谢谢。成功了。也要感谢@Corbin的洞察和添加。