1

我有一个包含日期的字符串,但日期对象不会接受它,所以我必须将其转换为有效格式。

我试过这个

"20130820".split(/^[a-z0-9]{4}[a-z]{2}[a-z0-9]{2}?$/) 

它应该给出一个像

["2013", "08", "20"]

知道我哪里错了吗?

4

3 回答 3

3

你想使用.match而不是.split. 您需要捕获每个组,并且第二个字符类也a-z应该是\d.

"20130820".match(/^(\d{4})(\d{2})(\d{2})$/).slice(1)
于 2013-10-01T14:53:07.030 回答
1

为什么要拆分,您可以使用String#match

var m = "20130820".match(/^(\d{4})(\d{2})(\d{2})$/);
//=> ["20130820", "2013", "08", "20"]

顺便说一句,对于这个简单的工作,您不需要正则表达式,只需使用String#substring

于 2013-10-01T14:52:34.983 回答
0

尝试子串

   String str="20130820";
   String  year=str.subString(0,3);
   String  month=str.subString(4,5);
   String  date=Str.subString(6,7);
于 2013-10-01T14:52:27.890 回答