[英]How to validate a ASP.Net TextBox which should allow negative or positive decimal value with three decimal places?
[英]Javascript to enter only positive or negative decimal number with 3 decimal places into a ASP.NET TextBox
我的UserControl中有一个TextBox。 在这里,我只想输入带有三个小数位的正或负十进制数。 例如如下:128.324,-23.453、10、0.453,-2、2.34,-5.34 TextBox不允许输入其他字符。 如何使用JavaScript做到这一点? 我的JavaScript不够好。
用于检查内容的正则表达式将类似于:
var re = /^[+-]?[\d,]+(\.\d{3})?$/;
但这不会强制使用数千个逗号,而只能将其放在整数部分的某个位置。 请注意,在某些国家/地区,逗号用作小数点。
如果您对变更进行验证,则应该没事。 确保您还验证了服务器上发送到服务器的所有数据,因为无论您如何尝试使用JS进行验证,任何数据都可以发送:
var input = document.getElementById('tehinput');
input.onchange = function(){
var val = this.value, sign = '';
if(val.lastIndexOf('-', 0) === 0){
sign = '-';
val = val.substring(1);
}
var parts = val.split('.').slice(0,2);
if(parts[0] && parseInt(parts[0], 10).toString() !== parts[0]){
parts[0] = parseInt(parts[0], 10);
if(!parts[0])
parts[0] = 0;
}
var result = parts[0];
if(parts.length > 1){
result += '.';
if(parts[1].length > 3 ||
parseInt(parts[1], 10).toString() !== parts[1]){
parts[1] = parseInt(parts[1].substring(0,3), 10);
if(!parts[1])
parts[1] = 0;
}
result += parts[1];
}
this.value = sign+result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.