function checkInterval(event) {
if ( true == new RegExp( /^\d$/ ).match( event.element().value ) ) {
event.element().value = '00:0' + event.element().value;
}
if ( true == new RegExp( /^\d\d$/ ).match( event.element().value ) ) {
event.element().value = '00:' + event.element().value;
}
if ( true == new RegExp( /^:\d\d$/ ).match( event.element().value ) ) {
event.element().value = '00' + event.element().value;
}
if ( true == new RegExp( /^\d:\d\d$/ ).match( event.element().value ) ) {
event.element().value = '0' + event.element().value;
}
if ( false == new RegExp( /^\d\d:\d\d$/ ).match( event.element().value )) {
alert( event.element().value + ' ÑвлÑетÑÑ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ значением' );
event.element().value = event.element().value.substr(0,5);
}
if ( -1 == event.element().value.indexOf( ':' ) ) {
event.element().value = '';
}
}
Refactorings
No refactoring yet !
Tj Holowaychuk
September 14, 2009, September 14, 2009 16:50, permalink
Not sure i understand what this is supposed to do...
Adam
September 14, 2009, September 14, 2009 21:20, permalink
function checkInterval(event) {
var pad = function(s) { return Array(3 - s.length).join('0') + s }
if (matches = event.element().value.match(/^((\d{1,2}):)?(\d{1,2})$)/) {
event.element().value = pad(matches[1] || '') + ':' + pad(matches[2] || '');
} else {
event.element().value = '';
}
}
peernohell.myopenid.com
December 11, 2009, December 11, 2009 13:06, permalink
@insanegigolo.livejournal.com : in your function you can't use match on RegExp, instead use test.
@Adam : you don't take good matches. it's matches[2] and matches[3]
for better perf use constant for pad and regexp. like this :
var Interval = (function () {
var pad = function(s) { return s.length < 2 ? pad('0'+s) : s; }
var regexp = /^((\d{1,2}):)?(\d{1,2})$/;
return {
check: function (event) {
if (matches = event.element().value.match(regexp) ){
event.element().value = pad(matches[2] || '') + ':' + pad(matches[3] || '');
} else {
event.element().value = '';
}
}
}
})();
procedure check user information and add addition for full pattern