我想禁止多写一个点,我也想禁止多写一个逗号
如果已经有一个点(.),则不应允许写入其他点(.)或逗号(,),反之亦然
我举个例子:
function isNumberKey(evt, obj) {
if (evt.target.selectionStart === 0 && (evt.keyCode == 46)) return false;
var charCode = (evt.which) ? evt.which : evt.keyCode
var value = obj.value;
var dotcontains = value.indexOf(".") != -1;
var commacontains = value.indexOf(",") != -1;
if ((value.length == 0) && (event.keyCode == 46)) return false
if (dotcontains || commacontains)
if (charCode == 46 || charCode == 44) return false;
if (charCode == 46 || charCode == 44) return true;
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
个字符
这是工作,但我需要这样做与regex
我试着用这个正则表达式:
/^[0-9]+(?:\.[0-9]+)*$/
型
它应该像
<input type="number" />
型
1条答案
按热度按时间des4xlb01#
你可以试试这个正则表达式
字符串
并将其替换为
$1
。基本上,它只允许数字字符
,
和.
,并且只允许存在一个,
或.
,除此之外的任何内容都将被替换为空。编辑
根据注解中添加的信息,最多只允许3个小数位,您可以稍微更改正则表达式:
型
编辑2
若要只允许小于100万的数字,您可以将最大有效位数限制为6,并将小数部分设置为可选:
型
的字符串