今天做了一个关于金额的校验,校验规则是通过传入整数长度和小数长度来做校验。
其中intPart和decPart分别表示整数长度和小数长度:
//限制输入数字的整数长度<intPart,小数长度<decPart.
function(o,intPart,decPart){
intPart=intPart || 0;
decPart=decPart || 0;
eval("var pt = //^//d{1,"+intPart+"}(//.//d{1,"+decPart+"})?$//");
if(!pt.test(o)){
return false;
}else{
//如果是数字,也要大于零
if(o<=0){
return false;
}else{
return true;
}
}
}
遇到的麻烦是,校验规则pt是根据入参生成的,可以看到,使用了eval实现。要注意的是,对特殊字符需要处理,如斜杠等等。