我有这个Reg。表达
value.match(/^\/Date\(\d*[\+\-]?\d*\)\/$/))
我用来查找类似此示例的日期
/Date(2208988800000+0100)/
出于某种原因,我无法理解何时有一个负值的毫秒(1970年1月1日以前的日期)正则表达式不起作用。
/Date(-2208988800000+0100)/
有什么建议么?
问题是您的正则表达式不允许在数字上使用减号(1970年之前的日期具有负时间值,因为时间值从1970年1月1日午夜起以毫秒为单位偏移)。您需要-?
在开始时添加:
value.match(/^\/Date\(-?\d*[\+\-]?\d*\)\/$/))
// Here --------------^^
var value = "/Date(-2208988800000+0100)/";
console.log(value.match(/^\/Date\(-?\d*[\+\-]?\d*\)\/$/));
旁注:我想你们两个\d*
都想成为\d+
。您希望+
/的两侧至少有一个数字,-
分隔时区偏移量...
旁注2:在中[\+\-]
,实际上都不需要反斜杠。+
在内不是特殊的[]
,并且-
仅在[]
不在开头或结尾时才特殊。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句