javascript正则表达式解析.net json日期时间

我不是正则表达大师,所以我请求帮助来提出一个像这样工作的正则表达式:

var regExp = ???

regExp.exec('\/Date(1330848000000-0800)\/') = [..., '1330848000000', '0800']

// optional gmt
regExp.exec('\/Date(1330848000000)\/') = [..., '1330848000000', null]

regExp.exec('\/Date(1)\/') = [..., '1', null]

// gmt required if - is present
regExp.exec('\/Date(1330848000000-)\/') = null

// escaping backslash is required
regExp.exec('/Date(1330848000000-0800)\/') = null
regExp.exec('\/Date(1330848000000-0800)/') = null

// case sensitive
regExp.exec('\/date(1330848000000-0800)\/') = null

// only numbers allowed
regExp.exec('\/Date(1aaa848000000-0800)\/') = null
regExp.exec('\/Date(1330848000000-0a00)\/') = null

我很早就陷入了愚蠢的困境:

/\\bla(.*)bla/.exec('\bla123bla') = null // instead of [ ..., '123']

new RegExp('\\\\bla(.*)bla').exec('\bla123bla') = null // instead of [ ..., '123']
最佳答案
如果字符串从不包含除时间和时区之外的任何其他数字,则可以使用此正则表达式:

/(\d+)(?:-(\d+))?/

放入你的代码:

var regex = /(\d+)(?:-(\d+))?/;
// regex.exec...

如果您确实需要验证并从字符串中提取数字:

/^\/Date\((\d+)(?:-(\d+))?\)\/$/

上面的正则表达式将检查字符串是否遵循确切的格式,并提取数字.

转载注明原文:javascript正则表达式解析.net json日期时间 - 代码日志