Javascript 输入文本框仅允许数字单点(.)作为“我的文本框”的值的价格不允许多点(.)

Javascript 输入文本框仅允许数字单点(.)作为“我的文本框”的值的价格不允许多点(.),javascript,jquery,html,ejs,Javascript,Jquery,Html,Ejs,我需要在文本框中插入浮点值,只允许0-9和信号点(.) 我尝试过以下代码: <html> <head> <script type="text/javascript" language="javascript"> function isNumberKey(evt) { var charCode = (evt.charCode) ? evt.which : event.keyCode if (charCode

我需要在文本框中插入浮点值,只允许0-9和信号点(.)

我尝试过以下代码:

<html>
<head>

 <script type="text/javascript" language="javascript"> 

    function isNumberKey(evt) { 
         var charCode = (evt.charCode) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
             return false;
        }
 </script> 


</head>
<body>
<input type="text" id="txtChar" onkeypress="return isNumberKey(event)"  name="txtChar" class="CsstxtChar" maxlength="4"/>
</body>
</html>

函数isNumberKey(evt){
var charCode=(evt.charCode)?evt.which:event.keyCode
如果(字符码>31&(字符码<48 | |字符码>57)&&charCode!=46)
返回false;
}
jQuery(文档).ready(函数(){
$('.float number')。按键(函数(事件){
if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which<48 | | event.which>57)){
event.preventDefault();
}
});
});

输入号码:
您可以尝试此代码


$('.CsstxtChar')。按键(函数(事件){
if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which<48 | | event.which>57)){
event.preventDefault();
}
});

我建议您改用regexp:

const pattern=newregexp('[0-9.]');
$('#txtChar')。on('keypress',函数(e){
const res=模式测试(e.key);
如果(!res){
e、 预防默认值();
}
});

乐意帮助@mevizewip的可能副本