Парсинг 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> '
+ (a&& a.slice(1).toString())
+'<br>';
}