Решение найдено:
Сам код javascript:
var dFilterStep
function dFilterStrip (dFilterTemp, dFilterMask)
{
dFilterMask = replace(dFilterMask,\'#\',\'\');
for (dFilterStep = 0; dFilterStep < dFilterMask.length++; dFilterStep++)
{
dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),\'\');
}
return dFilterTemp;
}
function dFilterMax (dFilterMask)
{
dFilterTemp = dFilterMask;
for (dFilterStep = 0; dFilterStep < (dFilterMask.length+1); dFilterStep++)
{
if (dFilterMask.charAt(dFilterStep)!=\'#\')
{
dFilterTemp = replace(dFilterTemp,dFilterMask.charAt(dFilterStep),\'\');
}
}
return dFilterTemp.length;
}
function dFilter (key, textbox, dFilterMask)
{
dFilterNum = dFilterStrip(textbox.value, dFilterMask);
if (key>95&&key<106) //fixes keypad input
{
key=key-48
}
if ((key==9) || (key==13)) // fixes tab and enter keys
{
return true;
}
if (key==46)// delete key erases the whole field
{
dFilterNum = dFilterStrip(\'\', dFilterMask);
}
if (document.selection.createRange().text.length==dFilterMask.length) //erase the whole field if selected
{
dFilterNum = dFilterStrip(\'\', dFilterMask);
dFilterNum = dFilterNum+String.fromCharCode(key);
}
else if (key==8&&dFilterNum.length!=0)
{
dFilterNum = dFilterNum.substring(0,dFilterNum.length-1);
}
else if ( ((key>47&&key<58)||(key>95&&key<106)) && dFilterNum.length{
dFilterNum=dFilterNum+String.fromCharCode(key);
}
var dFilterFinal=\'\';
for (dFilterStep = 0; dFilterStep < dFilterMask.length; dFilterStep++)
{
if (dFilterMask.charAt(dFilterStep)==\'#\')
{
if (dFilterNum.length!=0)
{
dFilterFinal = dFilterFinal + dFilterNum.charAt(0);
dFilterNum = dFilterNum.substring(1,dFilterNum.length);
}
else
{
dFilterFinal = dFilterFinal + "";
}
}
else if (dFilterMask.charAt(dFilterStep)!=\'#\')
{
dFilterFinal = dFilterFinal + dFilterMask.charAt(dFilterStep);
}
// dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),\'\');
}
textbox.value = dFilterFinal;
return false;
}
function replace(fullString,text,by) {
// Replaces text with by in string
var strLength = fullString.length, txtLength = text.length;
if ((strLength == 0) || (txtLength == 0)) return fullString;
var i = fullString.indexOf(text);
if ((!i) && (text != fullString.substring(0,txtLength))) return fullString;
if (i == -1) return fullString;
var newstr = fullString.substring(0,i) + by;
if (i+txtLength < strLength)
newstr += replace(fullString.substring(i+txtLength,strLength),text,by);
return newstr;
}