Разделение строк с помощью регулярных выражений JavaScript

У меня есть жало, которое содержит дату, но объект даты не примет его, поэтому я должен сделать его в допустимом формате.

Я пробовал это

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

Он должен выдавать массив как

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

Есть идеи, где я не прав?

3 ответа

Решение

Вы хотите использовать .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);
Другие вопросы по тегам