我有一个包含日期,但日期对象不会接受它,所以我必须把它变成一个有效的格式。字符串通过正则表达式分割javascript
我想这
"20130820".split(/^[a-z0-9]{4}[a-z]{2}[a-z0-9]{2}?$/)
应该给出像
["2013", "08", "20"]
任何想法,我错了一个数组?
我有一个包含日期,但日期对象不会接受它,所以我必须把它变成一个有效的格式。字符串通过正则表达式分割javascript
我想这
"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 str="20130820";
String year=str.subString(0,3);
String month=str.subString(4,5);
String date=Str.subString(6,7);
为什么拆分,可以使用String#match
:
var m = "20130820".match(/^(\d{4})(\d{2})(\d{2})$/);
//=> ["20130820", "2013", "08", "20"]
BTW对于这个简单的工作,你不需要正则表达式只是使用String#substring
你在给正则表达式添加[a-z]字符的意图是什么?你期望获得字母数字值吗? – devnull69
用户永远无法......你得到它.. – Sangoku