regValue.js 1.42 KB
Newer Older
wuhao's avatar
wuhao committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
function regValue(type, integerNum, pointNum) {
  /**
   *  整数不限长度 ----integer
   *
   * 整数位数  integerNum
   *
   * 小数位数  pointNum
   *
   *
   */
  let regInteger = new RegExp("^(-)*(\\d{1," + integerNum + "}).*$");
  let regPoint = new RegExp(
    "^(-)*(\\d{1," + integerNum + "}).*\\.(\\d{1," + pointNum + "}).*$"
  );
  if (type == "integer") {
    return {
      formatter: (value) => {
        return typeof value == "string"
          ? value?.replace(/^(-)*(\d+).*$/, "$1$2")
          : value;
      },
      parser: (value) => {
        return typeof value == "string"
          ? value?.replace(/^(-)*(\d+).*$/, "$1$2")
          : value;
      },
    };
  } else if (!type) {
    return {
      formatter: (value) => {
        if (value.indexOf(".") == -1 || !pointNum) {
          return typeof value == "string"
            ? value?.replace(regInteger, "$1$2")
            : value;
        } else {
          return typeof value == "string"
            ? value?.replace(regPoint, "$1$2.$3")
            : value;
        }
      },
      parser: (value) => {
        if (value.indexOf(".") == -1 || !pointNum) {
          return typeof value == "string"
            ? value?.replace(regInteger, "$1$2")
            : value;
        } else {
          return typeof value == "string"
            ? value?.replace(regPoint, "$1$2.$3")
            : value;
        }
      },
    };
  }
}

export default regValue;