2013-10-01 81 views
1

我有一个包含日期,但日期对象不会接受它,所以我必须把它变成一个有效的格式。字符串通过正则表达式分割javascript

我想这

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

应该给出像

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

任何想法,我错了一个数组?

+0

你在给正则表达式添加[a-z]字符的意图是什么?你期望获得字母数字值吗? – devnull69

+0

用户永远无法......你得到它.. – Sangoku

回答

3

你想用.match而不是.split。您需要捕获每个组,第二个字符类也是a-z,当时它可能只是\d

"20130820".match(/^(\d{4})(\d{2})(\d{2})$/).slice(1) 
0

试子

String str="20130820"; 
    String year=str.subString(0,3); 
    String month=str.subString(4,5); 
    String date=Str.subString(6,7); 
1

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

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

BTW对于这个简单的工作,你不需要正则表达式只是使用String#substring

相关问题