• wuhao's avatar
    asder · 232589d0
    wuhao authored
    232589d0
regValue.js 1.42 KB
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;