Парсинг 4-числового номера версии

В расширениях Хрома принято указывать версию скрипта не более чем в виде 4 чисел, разделённых точками и величиной не более 32767 и не начинающихся с 0. Добавим в этот формат дату и минорную версию после даты.

by spmbt

CSS

body{font: 13px Verdava,sans-serif}

JavaScript

var s =['200.2013.4.1'
        ,'200.2013.04.12'
        ,'200.2013.04.123'
        ,'200.2013.4.103' //0-разд.
        ,'200.2013.4.10' //число
        ,'200.2013.4.1053' //один 0
        ,'200.2013.4.10253' //один 0
        ,'200.2013.4.10001' //число+0
        ,'200.2013.4.2003' //число+0
        ,'200.2013.4.10015' //число+0
//когда нужен 0 - разделитель:
        ,'200.2013.4.300199'
        ,'200.2013.4.30199'
        ,'200.2013.4.31199'
        ,'200.2013.4.3199'
//лидирующий 0 в дне месяца
        ,'200.2013.4.03'
        ,'200.2013.4.031'
        ,'200.2013.4.0301'
    ]
,rVerMinor = RegExp('(\\d+)\\.'
    +'(\\d{4})\\.'
    +'(\\d{1,2})\\.'
    +'('
        +'(0?[4-9]|[1-3][1-9]|0?[1-3]0?$|0[1-3])(\\d*|$)'
      +'|(10|20|30|0?[1-3])0+([1-9]\\d*|$)'
    +')');
for(var i =0, iL = s.length; i < iL; i++){
    a = s[i].match(rVerMinor);
    console.log(s[i], a && a.slice(1))
    document.body.innerHTML += '<i style=color:#bbb>'+ s[i] +'</i>'
        +' => <br>&nbsp;&nbsp;&nbsp;&nbsp;'
        + (a&& a.slice(1).toString()) 
        +'<br>';
}