最近和一个做金融的朋友讨论到千位符输入的问题,后来一想貌似自己项目中也会经常碰到金额数字这种输入框,要么自己做一个吧。

首先肯定要有一个正则表达式,也就是过滤器的方案里面常用的正则:

1 filters: {
2 _toThousandFilter(str, that) {
3 return that._toNormal(str).replace(/(^|\s)\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','));
4 }
5 }

这个是基于el-input做的拓展,换其他的或者甚至原生的思路都一样,无非是要自己包装一个关于千位符的双向绑定,我这里都是做插件的形式封装,你也可以直接引用组件即可。

 1 <template>
2 <el-input
3 v-bind:value="value | _toThousandFilter(this)"
4 v-on:input="input"
5 :clearable="clearable"
6 :disabled="disabled"
7 @blur="_dispatchComponentEvent($event, 'blur')"
8 @change="_dispatchComponentEvent($event, 'change')"
9 @focus="_dispatchComponentEvent($event, 'focus')"
10 @clear="_dispatchComponentEvent($event, 'clear')"/>
11 </template>
12 <script>
13 export default {
14 name: 'LiloThounsandInput',
15 props: {
16 value: {
17 type: [String, Number],
18 default: ''
19 },
20 clearable: {
21 type: Boolean,
22 default: false
23 },
24 disabled: {
25 type: Boolean,
26 default: false
27 },
28 placeholder: {
29 type: String,
30 default: ''
31 }
32 },
33 filters: {
34 _toThousandFilter(str, that) {
35 return that._toNormal(str).replace(/(^|\s)\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','));
36 }
37 },
38 methods: {
39 _toNormal(str) {
40 return str.toString().split(',').join('');
41 },
42 input(val) {
43 const result = this._toNormal(val);
44 this.$emit('input', result);
45 },
46 _dispatchComponentEvent(event, eventType) {
47 this.$emit(eventType, event);
48 }
49 }
50 };
51 </script>
52
53 <style></style>

欢迎各路大佬指导、提问~

Vue【原创】千位符输入框(不仅只是过滤器哦)的更多相关文章

  1. vue 自定义千位符过滤器

    在main.js页面全局引入 Vue.filter('formatNum', function(value) { if(!value) return '' let num = value.toStri ...

  2. 对Textbox的值转换为带千位符和小数的Decimal字符串

    以下Function可以用于textbox的KeyUp事件: 2014-06-06 发现旧版IE不支持selectionStart还有字符串的"[]"索引获取值, 已经修复这个bu ...

  3. wpf 千位符 格式化字符串

    StringFormat={}{0:N2}}//格式话字符串,增加千位符,2保留小数点后2位 StringFormat={}{0:N0}}//格式话字符串,增加千位符,无小数点后

  4. js实现千位符分隔

    前几天面试做保险项目的公司,被问到了一道实现千位符分割方法的题,乍一看挺简单,但做起来最后却没给出来一个合适的解决方法.回来自己琢磨了一个还行的答案. var num = 3899000001, ar ...

  5. js千位符 | js 千位分隔符 | js 金额格式化

    js 千位分隔符 千位分隔符,其实就是数字中的逗号.依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值.所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易 ...

  6. JS实现数字千位符格式化方法

    /** * [number_format 参数说明:] * @param {[type]} number [number:要格式化的数字] * @param {[type]} decimals [de ...

  7. MySQL中大数字加减,不产生千位符和科学计数

    mysql数字加减科学计数法 这两天因为需求,需要获取一张表的流水号.规则是这样的.当前日期+8位流水号.比如:2015062400000001,2015062400000002,2015062400 ...

  8. 使用千位分隔符(逗号)表示web网页中的大数字

    做手机端页面我们常常遇到数字,而在Safari浏览器下这些数字会默认显示电话号码,于是我们就用到了补坑的方法加入<meta>标签: <meta name="format-d ...

  9. js-格式化数字保留两位小数-带千分符

    很多时候发现有时候js会提示自带函数不能使用,所以自己找了很多资料实现了个 html <input type="text" class="input_text in ...

  10. 把一串数字表示成千位分隔形式——JS正则表达式的应用

    梳理思路 要先明白的是,我们将要转换成的数字格式是这样:从个位往左数起,每三位前插入一个千位分隔符,,即可以想象成我们要把每三位数字前面的那个空""匹配出来,并替换成千位分隔符,. ...

随机推荐

  1. 2022-02-01:粉刷房子 II。 假如有一排房子,共 n 个,每个房子可以被粉刷成 k 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价

    2022-02-01:粉刷房子 II. 假如有一排房子,共 n 个,每个房子可以被粉刷成 k 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同. 当然,因为市场上不同颜色油漆的价 ...

  2. 2021-05-17:数组中所有数都异或起来的结果,叫做异或和。给定一个数组arr,可以任意切分成若干个不相交的子数组。其中一定存在一种最优方案,使得切出异或和为0的子数组最多。返回这个最多数量。

    2021-05-17:数组中所有数都异或起来的结果,叫做异或和.给定一个数组arr,可以任意切分成若干个不相交的子数组.其中一定存在一种最优方案,使得切出异或和为0的子数组最多.返回这个最多数量. 福 ...

  3. 从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目

    简而轻的低侵入式在线构建.自动部署.日常运维.项目监控软件 一键部署Jpom 本文主要介绍: 如何从零开始使用一键安装的方式安装 Jpom 服务端+插件端配置 本文中服务端和插件端是安装在同一个服务器 ...

  4. python爬虫防止IP被封的一些措施(转)

    python爬虫防止IP被封的一些措施(转) 在编写爬虫爬取数据的时候,因为很多网站都有反爬虫措施,所以很容易被封IP,就不能继续爬了.在爬取大数据量的数据时更是瑟瑟发抖,时刻担心着下一秒IP可能就被 ...

  5. * daemon not running; starting now at tcp:5037

    今日使用weeplus run android时 看错误提示 ,是5037端口的问题 * daemon not running; starting now at tcp:5037 于是找到查看端口的 ...

  6. Python asyncio之协程学习总结

    实践环境 Python 3.6.2 什么是协程 协程(Coroutine)一种电脑程序组件,该程序组件通过允许暂停和恢复任务,为非抢占式多任务生成子程序.协程也可以简单理解为协作的程序,通过协同多任务 ...

  7. 脱离 Spring 苦海,Solon v2.3.0 发布

    Solon 是什么框架? 一个,Java 新的生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态(全球第二级别的生态).与其他框架相比,它解决了两个重要的痛点:启动慢,费资源. 解决痛点? ...

  8. Windows AD域查询属性-密码过期时间

    Windows AD域查询属性-密码过期时间 Windows PowerShell命令方式查询: net user zhou /domain找出 SamAccountName 的值为zhou的用户部分 ...

  9. 【Python&目标识别】调用百度智能云API实现植被识别

           ​百度智能云于2015年正式对外开放运营,以"云智一体"为核心赋能千行百业,致力于为企业和开发者提供全球领先的人工智能.大数据和云计算服务及易用的开发工具.凭借先进的 ...

  10. 自然语言处理 Paddle NLP - 情感分析技术及应用-理论

    自然语言处理 Paddle NLP - 信息抽取技术及应用 定义:对带有感情色彩的主观性文本进行 分析.处理.归纳和推理的过程 主观性文本分析:技术难点 背景知识 电视机的声音小(消极) 电冰箱的声音 ...