前端引用中,通常会有需要验证你输入的数字,是否符合后端数据库中该字段的数据类型。
比如:在 A表中,有一个字段 quantity 字段类型是,decimal length=16 Scale = 4, 表示该字段,最多16位,小数最多4位。
那么在前端输入该值时,需要校验 该输入值,整数最多12位,小数做多4 位,改如何验证呢?
可以用如下正则验证:
reg = /^(0\.(?!0+$)\d{1,4}|^[1-9][0-9]{0,11}(\.\d{0,4})?)$/;
其中,红色部分,表示整数的位数,蓝色部分表示小数的位数,实际应用中,可以根据自己的业务调整。
一个简单的应用实例:
/**
*校验是否为长度16的decimal
*
* zeroFlag 判断0是否合法 true: 允许填0 false: 不允许为0
* zeroFlag 字段可不传值,不传时 默认允许输入0
* @author gl
*/
decimalCheckForSixteen: function (str,zeroFlag) {
// 整数最多12位,最多保留4位小数
var reg = /^(0\.(?!0+$)\d{1,4}|^[1-9][0-9]{0,11}(\.\d{0,4})?)$/;
if(zeroFlag && str == "0"){
return str;
}
if (reg.test(str) == true) {
return str;
} else {
return '';
}
},