0
我有大量的文本字段需要评估onkeyup,以确保没有输入,但数字。小数点可以。缺乏价值也是如此。为什么这个正则表达式匹配小数?
由于某些原因,这是匹配的小数。例如,我输入4然后。并标记。
我该如何纠正?
var s_in = 0;
for (var i = 10; i < 19; i++) {
var fObj = document.getElementById(field+'_'+i);
var text = fObj.value;
if (text) {
var s = parseInt(text);
var pattern = /^[+-]?(\d*\.)?\d+$/;
var result;
if ((result = pattern.exec(text)) != null) {
if (s > -1) {
s_in += s;
}
} else { // not empty and not a number
alert('The entry for Hole ' + i + ' ' + ucfirst(field) + ' is "' + text + '" This is not a number. It will be erased now.');
fObj.value = '';
fObj.focus();
return false;
}
}
}
尝试过,但我仍然被拒于小数点。试图在1.1中输入并粘贴到1.1(如果它与onkeyup很怪异),但都被标记为非数字?谢谢你的回应! – jerrygarciuh
@jerrygarciuh - 你必须逃避第一组中的'-'。我更新了我的答案。 – jfriend00
已更新但仍标记小数? – jerrygarciuh