我有一个包含日期的字符串,但日期对象不会接受它,所以我必须将其转换为有效格式。
我试过这个
"20130820".split(/^[a-z0-9]{4}[a-z]{2}[a-z0-9]{2}?$/)
它应该给出一个像
["2013", "08", "20"]
知道我哪里错了吗?
我有一个包含日期的字符串,但日期对象不会接受它,所以我必须将其转换为有效格式。
我试过这个
"20130820".split(/^[a-z0-9]{4}[a-z]{2}[a-z0-9]{2}?$/)
它应该给出一个像
["2013", "08", "20"]
知道我哪里错了吗?
你想使用.match
而不是.split
. 您需要捕获每个组,并且第二个字符类也a-z
应该是\d
.
"20130820".match(/^(\d{4})(\d{2})(\d{2})$/).slice(1)
为什么要拆分,您可以使用String#match
:
var m = "20130820".match(/^(\d{4})(\d{2})(\d{2})$/);
//=> ["20130820", "2013", "08", "20"]
顺便说一句,对于这个简单的工作,您不需要正则表达式,只需使用String#substring
尝试子串
String str="20130820";
String year=str.subString(0,3);
String month=str.subString(4,5);
String date=Str.subString(6,7);