JavaScript只允许数字、逗号、点和退格
我编写了一个javascript函数,只允许像这样的数字、逗号和点JavaScript只允许数字、逗号、点和退格,javascript,regex,Javascript,Regex,我编写了一个javascript函数,只允许像这样的数字、逗号和点 function isNumber(evt) { var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode(key); var regex = /^[0-9.,]
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();
}
}
但是如果我想从文本框中删除任何数字。。退格无效。然后我将regex代码更改为“var regex=/^[0-9.,BS]+$/;
”
我仍然不能在文本框中使用退格。即使我不能在文本框中使用左右键,我是否做错了?有人能帮忙吗。。。谢谢(当我在正则表达式中使用“BS”而不是在文本框中使用“B”、“S”字符时…)尝试以下代码:
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();
}
}
试试这段代码,我修改了它,并为我工作,只允许和逗号,点和数字
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();
}
}
}
我无法测试它,但是您可以尝试使用regex
/^[0-9.,\b]+$/
来代替它吗?谢谢,它可以退格工作。但我仍然无法在文本框中向左或向右移动游标。如果您使用的是jquery
,请尝试插件不要打扰用户,您只关心它发送到服务器时的值。嗅探击键不会检查通过其他方式输入的输入。相反,提供屏幕上的格式提示,在发送前验证输入,并让用户了解它。@vishnureddy-Ouch,你也在验证吗?我认为你不应该用正则表达式来做这些。我对JQuery不是很熟悉,但是RobG说的有道理。这不允许逗号或点