我写了一个javascript函数,只允许数字,逗号,点像这样
function isNumber(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode(key);
var regex = /^[0-9.,]+$/;
if (!regex.test(key)) {
theEvent.returnValue = false;
if (theEvent.preventDefault) theEvent.preventDefault();
}
}
但如果我想删除任何数字形式的文本框..退格不起作用。然后我将正则表达式代码更改为“var regex = /^[0-9.,BS]+$/;
”
仍然我无法在textbox中使用退格键。即使我在文本框中使用左右键我是做错了吗?任何人都可以帮助...谢谢。 (当我在正则表达式中使用“BS”而不是退格时,它允许文本框中的“B”,“S”字符..)
答案 0 :(得分:5)
试试这段代码:
function isNumber(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode(key);
if (key.length == 0) return;
var regex = /^[0-9.,\b]+$/;
if (!regex.test(key)) {
theEvent.returnValue = false;
if (theEvent.preventDefault) theEvent.preventDefault();
}
}
答案 1 :(得分:0)
尝试使用此代码,我对其进行了修改,并为我工作,仅允许和逗号,点和数字。
function isNumber(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
var keyCode = key;
key = String.fromCharCode(key);
if (key.length == 0) return;
var regex = /^[0-9.,\b]+$/;
if(keyCode == 188 || keyCode == 190){
return;
}else{
if (!regex.test(key)) {
theEvent.returnValue = false;
if (theEvent.preventDefault) theEvent.preventDefault();
}
}
}