针对字段较多的内容非空和位数校验封装

该博客介绍了一个用于字段内容非空和位数校验的JavaScript函数,详细阐述了如何进行不能为空的判断及不同位数条件下的验证逻辑,适用于多种场景的数据格式检查。
摘要由CSDN通过智能技术生成

针对字段较多的内容非空和位数校验封装:

 

/**

 * 校验内容是否匹配格式

 * @param val:string 传入需要校验的内容, 必填参数

 * @param ifEmpty:boolean 需要校验是否不能为空, 必填参数

 * @description: 

 * true-不能为空

 * false-不做是否为空拦截

 * 

 * @param options{}: 位数校验

 * @description: 

 * isFormatDigits: boolean(默认为true)  true-需要校验位数;false-不需要校验位数

 * area:number(默认为1)   1-等于;2-小于且等于;3-大于且等于;4-大于;5-小于

 * digits:number(默认为32)   位数;结合参数area使用,校验内容的位数是否符合格式;

 * 

 */

formatArg(val, ifEmpty, options) {

  // 将传入内容转成字符串

  val = val + '';

  // 设置默认选项

  let empty_result;

  let new_options = {};

  const default_options = {

    isFormatDigits: true,

    area: 1,

    digits: 32

  };

 

  // 去除前后空格,如果此时为空则说明全为空格,否则就去除前后空格保留内容

  const new_val = val.replace(/(^\s*)|(\s*$)/g, '');

 

  // 第一步:判断是否为空,符合格式则往下进行

  if (ifEmpty) {

    // TODO: 此处写判断为空的代码 并return结果

    if (!val || new_val === '') {

      empty_result = false;

      return false

    }

  }

 

  // 否则 为空校验通过 继续执行

  // 注意全空格的情况处理  '       '

  empty_result = true;

 

  // 第二步:判断是否有options 且为对象且不为空对象,不满足则不需要位数校验,直接return true,不阻塞程序进程

  if (!options ||

    Object.prototype.toString.call(options) !== '[object Object]' ||

    !Object.keys(options).length) {

    new_options = Object.assign({}, default_options);

  } else {

    // 满足则需要位数校验,将传入的 options 覆盖默认选项

    new_options = Object.assign({}, default_options, options);

  }


 

  if (!new_options.isFormatDigits) {

    // 不需要校验位数

    return empty_result && true

  } else {

    // val: 为空  为全空格   有值

    // 此处写校验位数的代码:1-等于;2-小于且等于;3-大于且等于;4-大于;5-小于

    switch (new_options['area'] * 1) {

      case 1:

        // TODO: 是否等于校验位数

        return new_val.length === new_options['digits']

      case 2:

        // TODO: 是否小于且等于校验位数

        return !(new_val.length > new_options['digits'])

      case 3:

        // TODO: 是否大于且等于校验位数

        return !(new_val.length < new_options['digits'])

      case 4:

        // TODO: 是否大于校验位数

        return new_val.length > new_options['digits']

      case 5:

        // TODO: 是否小于校验位数

        return new_val.length < new_options['digits']

      default:

        break;

    }

  }

   

  // 如果不做空拦截 且 不做位数判断 则默认return true,不阻塞程序进程

  return empty_result && true;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值