我已经编写了一堆代码来获得有效的支出金额条目(32.4554
,234,324.34
等)。我还编写了代码来限制用户输入超过 13 位数字(不包括.
and ,
)。
所有这些都在 Firefox 中完美运行。但是在 IE 8 中,位数超过 13 位后,如果输入一个字母,Internet Explorer 就会挂起并崩溃!在调试时,我注意到它在正则表达式行出现错误,但相同的正则表达式工作正常,直到没有超过 13 的限制!正则专家,请!给我看光!
function isIncorrectSpend(cubeCurrencySpend) {
if(!(/^([1-9]*[0-9]*,?[0-9]*)* (\.[0-9]*)?$/.test(cubeCurrencySpend))) {
return true;
}
return false;
}
function isLongerThanThirteenDigits(cubeCurrencySpend) {
cubeCurrencySpend = cubeCurrencySpend.replace(/,/g, "").replace(/\./g, "");
if(cubeCurrencySpend.length>12) {
return true;
}
return false;
}
jQuery("input#minval").keyup( function() {
if(isIncorrectSpend(jQuery("input#minval").val())) {
jQuery("input#minval").val("");
alert("please enter correct spend value");
}
});
jQuery("input#minval").keypress( function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if(isLongerThanThirteenDigits(jQuery("input#minval").val()) && (code > 47 && code < 58)) {
alert("Please enter a number less than 13 digits");
return false;
}
return true;
});