Парсинг 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.20' //число
,'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'
,'200.2013.4.00'
,'200.2013.12.56'
,'200.2013.4.501'
]
,rVerMinor = RegExp('(\\d+)\\.'
+'(\\d{4})\\.'
+'(\\d{1,2})\\.'
+'([1-3]0(?=0)|0?[1-3]0$|[1-3][1-9](?!0)|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:#999>'+ s[i] +'</i>'
+' =>' +(a &&'<br> v.'
+ a[1] + (a[5] ?'.'+ a[5].replace(/^0+/,''):'')
+', дата '+ a[2] +'-'
+(a[3].length==1?'0':'')+ a[3]
+'-'+(a[4].length==1?'0':'') + a[4])+'<br>';
}