JavaScript 中的十进制验证
Decimal validation in JavaScript
我使用以下脚本进行十进制验证。我只需要输入数字和点符号,例如 123.00。以下函数不支持那么好的字母,但它也不允许输入点(.)符号?如何使用此功能输入点符号?
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
else
return true;
}
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode != 46 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
return true;
}
使用正则表达式,这是一种更优雅的方法。
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode.match('/^[-+]?([0-9]*'.[0-9]+|[0-9]+)$/'))
return false;
else
return true;
}
function validateFloatKeyPress2(valor, presicion, event) {
var keyCode = (document.all) ? event.keyCode : event.which;
if (keyCode == 8) {
return true;
}
if (keyCode == 46 && valor.value.indexOf(".") >= 0) {
return false;
}
//Enable Only float values
if ((keyCode >= 48 && keyCode <= 57) || (keyCode == 46)) {
if (reverse(valor.value).indexOf(".") > (presicion - 1)) {
return false;
}
return true;
}
else {
return false;
}
}
function reverse(s) {
var o = '';
for (var i = s.length - 1; i >= 0; i--)
o += s[i];
return o;
}
试试这个:
验证数值字段
function validate(x) {
var decimal = /^[1-9]['.'d]*(,'d+)?$/;
if (x.match(decimal)) {
return true;
} else {
return false;
}
}
你也可以检查parseFloat方法,它返回NaN。
check thorugh isNaN() 方法
变量 a =3.00003
isNaN(a) 将返回假
var b ='3.0.0'isNaN(b) 将返回 true
我认为这种方法可以解决您的问题。
函数检查十进制(num){ var chkDecimal=/^''d+''.''d{0,2}$/; 返回 chkDecimal.test(num); } 警报(检查十进制(0.2)) 警报(检查十进制(1))
问题的完整解决方案是
function isNumberKey(e)
{
var code = (code ? code : e.which);
if (code != 46 && code > 31 && (code < 48 || code > 57))
return false;
//if it is (.)
else if (code == 46) {
var Value = this.value;
//if value already contains (.) character
if (Value.indexOf('.') != -1) {
var splt = Value.split('.');
//if there is already(.) char then return false
if (splt.length >= 2)
return false;
}
}
return true;
}
function IsNumeric(e) {
var keyCode = e.which ? e.which : e.keyCode;
var ret = ((keyCode == 46 || keyCode >= 48 && keyCode <= 57) || specialKeys.indexOf(keyCode) != -1);
return ret;
}
相关文章:
- 如何根据定义的十进制增量验证值
- 如何使用javascript验证在表单输入中避免负值、浮点值和十进制值
- 用于验证十进制数的正则表达式
- 使用javascript的十进制验证未按预期工作
- 在javascript中验证十进制
- 使用jquery验证器插件为十进制数设置正则表达式
- 用于十进制验证的 Javascript 正则表达式不起作用
- JavaScript 中的十进制验证
- 如何验证十进制数
- HTML 正则表达式验证在十进制输入上仅限制一个句点
- 用于验证范围内十进制值的正则表达式是什么 - 0 到 99999.00
- 如何十进制验证:限制仅输入两个数值
- 验证十进制模式
- JavaScript中的Regex,用于验证十进制数字
- 使用javascript或jquery在文本字段中进行十进制验证
- 如何使用javascript验证十进制时间
- 如何验证十进制值输入
- 如何在JQuery中完全验证十进制值
- 如何在javascript中创建动态正则表达式来验证十进制数
- 使用Jquery或Javascript在文本框中验证十进制字段