FWIW Я использую пару входных классов, контролируемую с JQuery:
<input class="intgr">
<input class="nmbr">
$("input.intgr").keyup(function (e) { // Filter non-digits from input value.
if (/\D/g.test($(this).val())) $(this).val($(this).val().replace(/\D/g, ''));
});
$("input.nmbr").keyup(function (e) { // Filter non-numeric from input value.
var tVal=$(this).val();
if (tVal!="" && isNaN(tVal)){
tVal=(tVal.substr(0,1).replace(/[^0-9+\.\-]/, '')+tVal.substr(1).replace(/[^0-9\.]/, ''));
var raVal=tVal.split(".")
if(raVal.length>2)
tVal=raVal[0]+"."+raVal.slice(1).join("");
$(this).val(tVal);
}
});
времени интегрирования полосой все нечисловая
NMBR принимает +
, -
, .
и 0-9. Остальная часть строки лишается всех, кроме 0-9, и первой .
Если вы в порядке с +
и -
находятся где угодно, решение Bamar идеально, короткое и сладкое. Мне нужно было +/- быть только в первой позиции символа, если вообще, и только один .
(т.е. выйти за пределы первого периода, так что 2.5.9 будет 2.59)
спасибо вам поздно вечером за мой мозг для правильной работы здесь –