使用javascript或jquery在文本字段中进行十进制验证
Decimal validation in the textfield using javascript or jquery
i想要验证keyup事件中的文本字段。
在字段中,它应该接受货币类型的十进制,如
(12.23)(.23)(0.26)(5.09)(6.00)
如果我输入了一些错误的值,那么它应该返回到上一个值并删除错误的
我认为这样的东西可能是的最佳选择
var isValidCurrency = function(str) {
var num = parseFloat(str);
return !Number.isNaN(num) && num.toFixed(2).toString() === str;
};
一些测试
isValidCurrency("1234.56"); // true
isValidCurrency("1234.565"); // false
isValidCurrency("1234"); // false
isValidCurrency("foo"); // false
您可以使用以下Regex
val = "2.13"
if (!val.match(/^('d{0,2})('.'d{2})$/)) {
alert("wrong");
} else {
alert("right");
}
http://jsfiddle.net/rtL3J/1/
编辑
请注意,如果点(.)前面的数字长度限制为两,则代码有效代码为
^('d{0,2})('.'d{2})$
否则,如果没有限制,则仅从代码中删除2
,即
^('d{0,})('.'d{2})$
试试这个:
function evMoneyFormat(evt) {
//--- only accepts accepts number and 2 decimal place value
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode(key);
var regex = /^[0-9]{1,14}'.[0-9]{0,2}$/; // number with 2 decimal places
if (!regex.test(key)) {
theEvent.returnValue = false;
//--- this prevents the character from being displayed
if (theEvent.preventDefault) theEvent.preventDefault();
}
}
控制:
<input type='text' onkeyup='evMoneyFormat( e );'>
尝试以下代码
function validateDecimal(num){
var dotPosition=num.indexOf(".");
if(dotPosition=="-1"){
document.getElementById('cost').value= num+".00"
}
}
并且在html 中
<input type="text" id='cost' onkeyup="validateDecimal(this.value)" />
相关文章:
- 如何根据定义的十进制增量验证值
- 如何使用javascript验证在表单输入中避免负值、浮点值和十进制值
- 用于验证十进制数的正则表达式
- 使用javascript的十进制验证未按预期工作
- 在javascript中验证十进制
- 使用jquery验证器插件为十进制数设置正则表达式
- 用于十进制验证的 Javascript 正则表达式不起作用
- JavaScript 中的十进制验证
- 如何验证十进制数
- HTML 正则表达式验证在十进制输入上仅限制一个句点
- 用于验证范围内十进制值的正则表达式是什么 - 0 到 99999.00
- 如何十进制验证:限制仅输入两个数值
- 验证十进制模式
- JavaScript中的Regex,用于验证十进制数字
- 使用javascript或jquery在文本字段中进行十进制验证
- 使用javascript验证文本框中具有十进制值的数字
- 使用javascript对asp.net中的两个数字和两个十进制值进行文本框验证
- Regex验证文本区域中的整数和十进制数
- 如何使用javascript验证十进制时间
- 如何解决十进制验证码中的错误