vue3中固定格式信息识别功能

1.需求与效果

2.功能代码

// 定义一个函数discern
const discern = () => {
  // 定义变量paramsList和params
  let paramsList;
  let params = {};

  // 将htmlText.value按换行符分割,得到一个数组,每个元素是一行文本
  paramsList = htmlText.value.split('\n');

  // 定义两个数组,object包含了我们想要获取的信息的名称,discernList包含了每种信息可能对应的关键字
  let object = ['companyName', 'taxpayerNumber', 'address', 'phone', 'bank', 'account', 'email'];
  let discernList = [
    ['名称', '公司名称', '企业名称', '公司名'],
    ['税号', '纳税人识别号', '统一信用代码'],
    ['单位地址', '公司地址', '企业地址', '地址'],
    ['电话', '电话号码', '联系方式', '手机号'],
    ['开户银行', '银行名称', '开户行'],
    ['银行账户', '银行账号', '账号', '账户'],
    ['邮箱','电子邮箱']
  ];

  // 遍历paramsList中的每一行文本
  paramsList.forEach((el, i) => {
    // 将当前行按冒号分割,得到一个数组elList,第一个元素是关键字,第二个元素是值
    let elList = el.replace(':', ':').split(':');
    // 去除值中的所有空格
    elList[1] = elList[1]?.replace(/\s+/g, '');

    // 遍历discernList中的每个数组
    discernList.forEach((item, index) => {
      // 遍历当前数组中的每个关键字
      item.forEach((ele) => {
        // 如果当前行的关键字包含当前关键字
        if (elList[0].indexOf(ele) !== -1) {
          // 如果当前关键字是"地址",并且当前行的关键字不包含"邮箱"
          if (ele == '地址' && elList[0].indexOf('邮箱') == -1) {
            // 将值存储在params对象中,属性名是object数组中对应的元素
            params[object[index]] = elList[1];
          } else if (ele != '地址') { // 如果当前关键字不是"地址"
            // 将值存储在params对象中,属性名是object数组中对应的元素
            params[object[index]] = elList[1];
          }
        }
      });
    });
  });

  // 将params对象合并到invoiceHeaderForm.value对象中
  Object.assign(invoiceHeaderForm.value, params);
};

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值