Javascript 如何验证字符串值的格式为\/日期(1239018869048)\/";?
如何验证字符串/JSON值的格式是否为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' :
“\/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的洞察和添加。