如何为以下内容编写正确的正则表达式:
/Date(1518238800000)/ - matches
jdsjdsj - no match
2017/03/12 - no match
12 - no match
Date() - no match
/Date(1218238800000)/ - matches
到目前为止我所拥有的是:
var res = str.match(/Date(\d*)/g);
如何修改正则表达式?
答案 0 :(得分:1)
我假设您的字符串有点来自.NET序列化程序,如此处所述
How to parse ASP.NET JSON Date format with GWT
和
How to parse JSON to receive a Date object in JavaScript?
其中一个答案有一个你可能想要使用的复活功能。
如果没有,那么正则表达式将需要转义括号:
var str = '{ "date": "/Date(1218238800000)/" }'
var re = /Date\((\d*)\)/g // escaping the () from the date and capture the number
res = re.exec(str);
console.log(res[1])
更多日期和创建日期对象:
var str = '{ "date1": "/Date(1218238800000)/", "date2": "/Date(1218248800000)/" }'
var re = /Date\((\d*)\)/g // escaping the () from the date and capture the number
while (res = re.exec(str)) {
var date = +res[1]; // convert
console.log(new Date(date))
}
答案 1 :(得分:0)
您需要转义这样的特殊字符:
let regex = /\/Date\(\d+\)\//g;
console.log(regex.test("/Date(123455)/"), //true
regex.test("Date()"), //false
regex.test("afdjkh"), //false
regex.test("/Date(38457843)/")) //true