我已经在asp.The中创建了一个数据栅格,它链接到这个表,该表很少有数值数据类型的列(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位后,decimal.Using正则表达式可以解决我的问题,我不擅长它。
我试图使用以下方法:
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);
}
}但是它仍然没有验证
发布于 2016-06-14 16:50:06
为了用精度和比例尺验证数值数据,我使用reg作为第一种方法来处理长度,而不是数字数据验证。
在下面的代码中错误是1。我试图匹配列名而不是数据2。“匹配”不适合我,所以我使用了"test“。
代码应该是
var currentRowKey = [eventArgs.get_displayText()];
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 (!re.test(currentRowKey)){
var error = (regex[i]+"is incorrect");
alert(error);
eventArgs.set_cancel(true);
}
}reg :对于那些只想处理十进制正数的人来说,代码中的那个很好。
我想处理整数、+_数、十进制数和空数,所以我使用了以下方法:
var re = /^-?\d{0,22}(\.\d{0,8})?$/;https://stackoverflow.com/questions/37812740
复制相似问题