金额格式化,利率格式化

news2024/12/26 10:47:56
<el-input
  placeholder="请输入"
   size="medium"
   v-model="amt"
   maxlength="16"
   :disabled="showBtn === 'no' || readOnly"
   oninput="
    this.value = this.value.replace(/[^\d.]/g,'')
    .replace(/\.{2,}/g, '.')
    .replace(/^0+(\d)/, '$1') // 第一位0开头,0后面为数字,则过滤掉,取后面的数字
    .replace(/^\./, '') // 如果输入的第一位为小数点,则替换成 0. 实现自动补全
    .replace(/^(\d+)\.(\d\d).*$/, '$1.$2')"
   @keyup.native="($event) => $keyupEvent($event)"
   @blur="changeNumAmt('apply_amt', $event)"
   @focus="backNum('apply_amt', $event)"
/>
//键盘事件(限制操作 小数点、删除键,输入其他内容将输入框数据清空)
export function keyupEvent(e) {
  // console.log('调用键盘事件',e);
  let keyAry = ['Backspace', 'Delete', 'Period','NumpadDecimal']
  let numObj = {
    0: 'Digit',
    1: 'Numpad',
  }
  let reg = /\d+|\./
  let charCode = ''
  if (keyAry.includes(e.code)) {
    charCode = '.'
  } else {
    for (let i in numObj) {
      if (e.code.indexOf(numObj[i]) > -1) {
        charCode = e.code.substr(e.code.length - 1, 1)
        break
      } else {
        let regex = /^[A-Za-z]$/
        if (regex.test(e.key)) {
          charCode = ''
          break
        } else {
          charCode = '.'
        }
      }
    }
  }
  if (!reg.test(charCode)) {
    e.target.value = ''
  }
}
     * @description: 格式化金额处理
     * @return {*}
     */
    changeNumAmt(val, e) {
      this.Data[val] = e.target.value ? amoThreeForm(e.target.value) : ''

    },
     * @description: 输入框进入光标回显金额处理
     * @return {*}
     */
    backNum(val, e) {
      this.Data[val] = e.target.value ? threeToNum(this.Data, val) : ''
    },
//数字转千分位 eg:1,111,222.90
export function amoThreeForm(numb){
  // 转为字符串,并按照.拆分
  const arr = (numb + "").split(".");
  // 整数部分再拆分
  const int = arr[0].split("");
  // 小数部分
  const fraction = arr[1] || "";
  // console.log(fraction.length,"小数长度");
  var result;
  if (fraction.length ==0) {
    result = '00'
  }else if (fraction.length ==1) {
    result = fraction.toString()+'0';
  }else{
    result = fraction.toString().substring(0, fraction.toString().indexOf(".") + 3)
  }

  // 返回的变量
  let r = "";
  int.reverse().forEach(function (v, i) {
    // 非第一位并且是位值是3的倍数,添加“,”
    if (i !== 0 && i % 3 === 0) {
      r = v + "," + r;
    } else {
      // 正常添加字符(这是好写法)
      r = v + r;
    }
  });
  // 整数部分和小数部分拼接
  console.log(r + (!!result ? "." + result : ""),"转换后的值====================")
  return r + (!!result ? "." + result : "");
}
//回显前分位转数字 eg:111222.90
export function threeToNum(from,val){
  let reg = new RegExp(",", "g");
  if (from[val] != "") {
    let falg = from[val].indexOf(".00") !=-1;//证明有.00
    if (falg) {
      from[val] = from[val].slice(0, -3);
    }
    return from[val].replace(reg, "");
  }
}

利率处理

<el-input
   maxlength="6"
   placeholder="请输入"
   size="medium"
   v-model="amt"
   oninput="
     this.value=this.value.replace(/^\D*(\d*\.?\d{0,2})?.*$/, '$1')    //限制小数点后两位
     .replace(/^(\d{0,3})?\d*$/, '$1') //限制两位整数
     .replace(/\b\d{4,}\b/g, ''); 
     "
   @blur="handlblur('amt', $event)"
  />
/**
* @description: 利率处理
* @param {*} e
* @return {*}
*/
handlblur(name, e) {
      console.log('handlblur', name, e.target.value)
      this.Data[name] = Number(e.target.value).toFixed(2) == 0 ? '' : Number(e.target.value).toFixed(2)
    },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1302862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android--Jetpack--Databinding源码解析

慢品人间烟火色&#xff0c;闲观万事岁月长 一&#xff0c;基本使用 关于databinding的基本使用请看之前的文章 Android--Jetpack--Databinding详解-CSDN博客 二&#xff0c;xml布局解析 分析源码呢&#xff0c;主要就是从两方面入手&#xff0c;一个是使用&#xff0c;一个…

Nginx正则表达式

目录 1.nginx常用的正则表达式 2.location location 大致可以分为三类 location 常用的匹配规则 location 优先级 location 示例说明 优先级总结 3.rewrite rewrite功能 rewrite跳转实现 rewrite执行顺序 语法格式 rewrite示例 实例1&#xff1a; 实例2&#xf…

Vue3封装一个轮播图组件

先看效果 编写组件代码 CarouselChart.vue <template><div classimg-box><el-button clickpreviousImages v-ifprops.showBtn>←</el-button><div classimg><div styledisplay: flex;gap: 20px idmove><imgclassimg-item v-for(item…

hdlbits系列verilog解答(Ringer)-55

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 本次我们设计一个电路以实现对手机铃声和振动的控制。当工作在振动模式时&#xff0c;开启振动&#xff0c;否则开启铃声。 尝试只使用assign语句&#xff0c;测试一下你是否能将描述转化成数字逻辑电路。 二…

Guava反射工具详解

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;今天咱们聊聊Java反射&#xff0c;特别是在Guava这个强大的库中&#xff0c;它是怎么让反射变得更简单&#xff0c;更有趣的。咱们都知道&#xff0c;反射在Java中是个相当强大的特性&#xff0c;它允许程序在运…

基于ssm的校园快递一站式服务系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本校园快递一站式服务系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数…

【Java 基础】30 JDK动态代理

文章目录 1.定义2.原理3.使用1&#xff09;定义业务接口2&#xff09;实现 InvocationHandler 接口3&#xff09;生成代理类 4.优点5.缺点总结 动态代理是一种重要的 设计模式&#xff0c;它允许在运行时生成代理类来代替实际的类。动态代理主要通过反射机制实现&#xff0c;为…

计算机图形学——消隐算法

目录 消隐算法 &#xff08;1&#xff09;隐藏线消除算法 &#xff08;2&#xff09;隐藏面消除算法 曲面体消隐算法 3D Mesh 隐藏面消除算法 &#xff08;1&#xff09;深度缓冲器算法&#xff08;zBuffer&#xff09; 深度缓冲器 &#xff08;2&#xff09;深度排序…

机器学习基础介绍

百度百科&#xff1a; 机器学习是一门多领域交叉学科&#xff0c;涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改善自身的性能。 …

mysql 链接超时的几个参数详解

mysql5.7版本中&#xff0c;先查看超时设置参数&#xff0c;我们这里只关注需要的超时参数&#xff0c;并不是全都讲解 show variables like %timeout%; connect_timeout 指的是连接过程中握手的超时时间,在5.0.52以后默认为10秒&#xff0c;之前版本默认是5秒&#xff0c;主…

学习人工智能-基础篇

背景 随着大模型的火爆&#xff0c;人工智能再次被推到高潮&#xff0c;其实它在众多行业领域已经落地很多应用&#xff0c;并给社会带来了巨大的经济价值。其中包括互联网、教育、金融、医疗、交通、物流等等。在测试领域也有一些落地的案例&#xff0c;作为测试人员&#xf…

关于个人职业选择

职业选择&#xff0c;一直是个老生常谈的话题。这并不是一个容易做的决定。 让我们来看看AI怎么说。 首先是方向性的回答&#xff1a; 然后是一些具体的回答 我个人比较倾向于深耕网络安全。这是一个很有趣也是一个持续发展着的领域。 不知道关于这个事情你怎么看&#xff0…

案例解决Redis高并发场景带来的缓存穿透、击穿、雪崩问题(超级详细!!)

假设你的网站流量量达到亿级&#xff0c;传统的去查询DB势必会给DB带来巨大的压力&#xff0c;甚至可能有宕机的风险&#xff0c;接下来我就分几个阶段&#xff0c;来讲诉各个场景可能会给DB带来巨大压力的可能&#xff0c;以及优化的方案。 缓存击穿&#xff1a;key对应的数据…

2023年12月11日:ui界面跳转

头文件&#xff1a;Second #ifndef SECOND_H #define SECOND_H#include <QWidget>namespace Ui { class Second; }class Second : public QWidget {Q_OBJECTpublic:explicit Second(QWidget *parent nullptr);~Second(); public slots:void jump_slot(); private:Ui::S…

飞桨星河文心SDK与open interpreter构成“小天网”雏形

飞桨星河文心SDK与open interpreter构成“小天网”雏形 开放式解释器open interpreter是大模型和自然语言交互的神器&#xff0c;本项目旨在体验文心大模型为底座的open interpreter。本项目只需使用CPU环境即可运行&#xff0c;直接运行即可“运行全部Cell”&#xff0c;本项…

访问控制列表ACL学习

ACL概念 ACL: ACL 是 Access Control List&#xff08;访问控制列表&#xff09;的缩写。它是一种用于管理和控制访问权限的机制或数据结构。ACL 用于确定谁可以访问特定资源&#xff08;例如文件、文件夹、网络资源等&#xff09;以及他们可以执行的操作。ACL 通常由一系列访…

【EMNLP 2023】面向Stable Diffusion的自动Prompt工程算法

近日&#xff0c;阿里云人工智能平台PAI与华南理工大学朱金辉教授团队合作在自然语言处理顶级会议EMNLP2023上发表了BeautifulPrompt的深度生成模型&#xff0c;可以从简单的图片描述中生成高质量的提示词&#xff0c;从而使文生图模型能够生成更美观的图像。BeautifulPrompt通…

1、混合方式UI设计

1、混合方式UI设计 新建项目添加静态资源添加资源添加action添加菜单菜单栏工具栏中间编辑区域 代码添加其他组件字体和大小状态栏 添加槽函数UI设置的转到槽的手写的设置应用程序图标 代码 新建项目 MainWindow代码文件夹主窗口为 (QMainWindow) 添加静态资源 AppIcon.icoi…

【MATLAB】基于CEEMDAN分解的信号去噪算法(基础版)

代码的使用说明 【MATLAB】基于CEEMDAN分解的信号去噪算法&#xff08;基础版&#xff09; 代码流程图 代码效果图 获取代码请关注MATLAB科研小白的个人公众号&#xff08;即文章下方二维码&#xff09;&#xff0c;并回复CEEMDAN去噪 本公众号致力于解决找代码难&#xff0c;…

【C++】POCO学习总结(十二):流(文本编解码、数据压缩、文件读写流等)

【C】郭老二博文之&#xff1a;C目录 1、说明 POCO提供了多种流类&#xff0c;与标准c IOStreams兼容。 大多数POCO流类被实现为过滤器&#xff0c;这意味着它们不写入或读取设备&#xff0c;而是从它们连接的另一个流。 2、文本编解码 2.1 说明 POCO提供了用于编码和解码…