有人可以为我提供以下的正则表达式吗? (使用Javascript)
源字符串:Jan 2 2010 6:00PM
我希望结果字符串只显示时间,如下所示。 (上面使用的例子)
结果字符串:6:00 PM
答案 0 :(得分:6)
将(\d{1,2}:\d{1,2})([AP]M)
替换为\1 \2
更新:如果源字符串保证为\d{2}
格式,请使用\d{1,2}
代替HH:MM
。
答案 1 :(得分:1)
在正则表达式中实现SilentGhost的注释:/([^ ]+)([^ ]{2})$/
这将匹配最后一个以空格分隔的“单词”,第1组中的第一位和第2组中的最后两个字符。转换为字符串操作应该是直接的。
如果需要,您还可以将(..)
替换为[AP]M
或类似内容,如果构建正则表达式以防止类似blah blah haha-I-gave-garbage-inputPM
之类的内容,则可能会从一小部分验证中受益,但是无论如何,有很多方法可以处理垃圾。
答案 2 :(得分:0)
您可以使用格式为SimpleDateFormat
的{{1}}。然后你可以得到时间部分。
答案 3 :(得分:0)
虽然我没看过,但我相信你能在Regex Library网站上找到适合你的东西。但是我碰巧同意SilentGhost,因为分割字符串可能更容易。只需确保所有DateTime都采用相同的格式。
答案 4 :(得分:0)
如果您需要将其转换为日期对象,并且如果您在Web浏览器中使用Javascript,则可能需要这样:
new Date('Jan 2 2010 6:00PM'.replace(/(?=[AP]M)/i, ' '));
// Sat Jan 02 2010 18:00:00 GMT-0600 (Central Standard Time)
new Date('Jan 2 2010 6:00PM'.replace(/(?=[AP]M)/i, ' ')).toUTCString();
// Sun, 03 Jan 2010 00:00:00 GMT
Mozilla在Javascript Date object上有参考文档。