js验证整数加保留小数点的简单实例

复制代码 代码如下:

  function validateNum(obj) {

  //正整数(此处用了缓存)

  var number = obj.data(validate).number;

  //小数点(此处用了缓存)

  var decimal = obj.data(validate).decimal;

  //动态基本验证正则

  eval("var reg = /^[0-9]{0," + number + "}([.]?[0-9]{0," + decimal + "})$" + "/g;");

  var value = obj.val();

  var maxnumlen = number + decimal + 1; //最大长度 + 1(小数点)

  if (!reg.test(obj.val())) return false;

  //最大长度等于当前值的长度并且值没有"."

  if (maxnumlen == value.length && value.indexOf('.') <= 0) {

  return false;

  }

  //尝试得到"."的索引

  var valueindexof = value.indexOf('.');

  if (valueindexof > 0) {

  //如果"."索引后一位是空那么肯定是返回false

  if (value.charAt(valueindexof + 1) == "") {

  return false;

  }

  }

  //分割值就很容易判断出前后内容

  var valuesplit = value.split('.');

  //如果值的长度大于定义的正整数长度

  if (value.length > number) {

  if (valuesplit.length == 1) {

  return false;

  }

  //最大长度-所定义长度 大于 最大长度 即超长 ,false.

  if (maxnumlen - number >= maxnumlen) {

  return false;

  }

  }

  return true;

  }

  给元素缓存一个validate对象后,调用即可。

  定义:

  $("#example").data("validate", { number: 2, decimal: 2 });

  调用:

  validateNum($("#example));