2013-12-10 32 views
0

我有一个javascript函数让用户只输入数字。我需要这个功能让我输入“,”和“;”。我该怎么做呢?在我的功能下。只有数字功能

function SomenteNumero(e){ 
    var tecla=(window.event)?event.keyCode:e.which; 
    if((tecla>47 && tecla<58)) return true; 
    else{ 
     if (tecla==8 || tecla==0) return true; 
    else return false; 
    } 
} 

谢谢。

+1

你需要把它映射到正确的ASCII字符。请参阅:http://www.asciitable.com/ –

+1

这是我见过的第三篇文章,通过* ascii * char-code进行过滤 - 这是一个糟糕的主意!你从哪里得到这些例子? – Emissary

回答

1

请不要尝试使用ASCII值验证输入。这很容易出错,并且可能无法可靠地确定您实际尝试的内容。这可能更接近你需要的东西:

function isNumber(str) { 
    return /^[0-9,;]+$/.test(str); 
} 

请记住,这个例子可能并不全面。您的规格需要更详细,才能完全满足您的需求。

0

您需要定义对象。尝试

`<script> 
function NumberBox(e){ 
var _define=(window.event)?event.keyCode:e.which; 
if((_define>47 && _define<58)) return true; 
else{ 
if (_define==8 || _define==0) return true; 
else return false; 
} 
} 
</script>` 

然后

<input name="Name" type="text" id="Name" size="15" maxlength="30" onkeypress="return NumberBox(event);">