【发布时间】:2016-06-14 12:57:59
【问题描述】:
我在 asp 中创建了一个数据网格。该网格链接到这个表,该表有几列数字数据类型 (22,8)。我将这些字段作为可编辑字段,因此我正在尝试验证其精度和规模。 目前我有这种适用于 varchar 数据类型的方法:
var colList =
[
["customer_name", 32],
["customer_address", 32],
["price",22] // this is numeric (22,8)
];
for (var i = 0; i < colList.length; ++i) {
if (currentColumnName == colList[i][0].toString()) {
if (currentRowKey.toString().length > colList[i][1]) {
var error = (colList[i][0].toString() + " can only have a maximum of " + colList[i][1] + " characters.");
alert(error);
eventArgs.set_cancel(true);
}
}
}
我想用精度和比例来验证数字类型。在上面的代码中,我只能验证 22 的长度我不能只验证小数点后允许的 8 位数字。使用正则表达式可以解决我的问题,但我不擅长。
我尝试使用以下内容:
var regex = [
["total_amount"],
["price"],
["market_value"]
];
for (var i = 0; i < regex.length; ++i) {
if (currentColumnName == regex[i].toString()) {
var re = /^(\d{0,22}\.\d{0,8})$/;
if (regex[i].match(re)) {
var error = (regex[i]+"is incorrect");
alert(error);
eventArgs.set_cancel(true);
}
}
但它仍然没有验证
【问题讨论】:
-
您遇到了什么问题?代码是否抛出任何错误?
-
看起来你应该使用一个对象。
{customer_name:32, customer_address:32, price:22} -
我在问题中更新了它。该代码可以很好地检查长度,但我正在尝试使用比例实现数字数据类型,并且我希望能够验证精度和比例,例如。 23.56565656 - 有效但 23.565656567 - 应该显示错误消息
标签: javascript asp.net regex validation