Javascript 输入一个只允许数字、一个点和两个小数位

Javascript 输入一个只允许数字、一个点和两个小数位,javascript,Javascript,有没有办法在javascript中验证多个输入,以便只允许数字、一个点和两个可选的小数点 编辑: 它应该允许下一个: 12.65 12.6 十二, 十二, 一, 我设法做到了这一点: <input type="number" onkeypress="return isDecimalKey(event,this)"/> <input type="text" onkeypress="return isDecimalKey(event,this)"/> <input

有没有办法在javascript中验证多个输入,以便只允许数字、一个点和两个可选的小数点

编辑: 它应该允许下一个:

  • 12.65
  • 12.6
  • 十二,
  • 十二,
  • 一,
我设法做到了这一点:

<input type="number" onkeypress="return isDecimalKey(event,this)"/>
<input type="text" onkeypress="return isDecimalKey(event,this)"/>
<input type="number" onkeypress="return isDecimalKey(event,this)"/>
<input type="text" onkeypress="return isDecimalKey(event,this)"/>

函数isDecimalKey(evt,elem){
var charCode=(evt.which)?evt.which:evt.keyCode;
如果(charCode>31&(charCode!=46&&(charCode<48|charCode>57)))
返回false;
否则{
var-dot=0;
for(var i=0;i
但效果不好,我仍然可以插入多个点和超过2个小数,但只接受数字和点。

您可以尝试:

input type="number" 
step="0.01"
onkeypress={() => { isDecimalKey(event,this) }} 
您可以尝试:

input type="number" 
step="0.01"
onkeypress={() => { isDecimalKey(event,this) }} 

使用以下正则表达式验证输入值:

[0-9]*\.?[0-9]{2}.test('21.33') //true

[0-9]*\.?[0-9]{2}.test('3333.111') //false


使用以下正则表达式验证输入值:

[0-9]*\.?[0-9]{2}.test('21.33') //true

[0-9]*\.?[0-9]{2}.test('3333.111') //false

试试这个

HTML

<input autofocus pattern="^\d+\.{0,1}\d{0,2}$" required oninput="isDecimalKey(event,this)">
试试这个

HTML

<input autofocus pattern="^\d+\.{0,1}\d{0,2}$" required oninput="isDecimalKey(event,this)">

使用正则表达式不是更简单吗/^[0-9]+\[0-9]{2}$/使用正则表达式不是更简单吗/^[0-9]+\.[0-9]{2}$/如何应用?如何应用?