vue数字类型过滤器的示例代码


Posted in Javascript onSeptember 07, 2017

需求 只能输入数字

输入字母和特殊字符自动过滤掉

输入完成失焦自动加.00 如果输入了小数自动四舍五入为22.22类似这样格式

效果图

vue数字类型过滤器的示例代码

可以使用在普通js和angular里面,vue 直接调用

先上调用的函数

/**
 * User: sheyude
 * Date: 2017/9/4 0004
 * Time: 上午 10:51
 *
 */
let number = {
  twoWay: true,
    bind:function (el) {
  el.addEventListener('blur',function () {
    // let value = formatNumber(el.value,2,0)
    let value

    (function(){
      value = formatNumber(el.value,2,0)
      return value
    })()
    el.value =value
  })
},
  update:function (el,binding,vnode) {
    if(el.value !== ''){
      el.value = el.value.replace(/[^0-9.]+/g, '');
    }
  }
}

/**
 * 将数值四舍五入后格式化.
 * @param num 数值(Number或者String)
 * @param cent 要保留的小数位(Number)
 * @param isThousand 是否需要千分位 0:不需要,1:需要(数值类型);
 * @return 格式的字符串,如'1,234,567.45'
 * @type String
 */
function formatNumber(num,cent,isThousand) {
  num = num.toString().replace(/\$|\,/g,'');

  // 检查传入数值为数值类型
  if(isNaN(num))
    num = "0";

  // 获取符号(正/负数)
  let sign = (num == (num = Math.abs(num)));

  num = Math.floor(num*Math.pow(10,cent)+0.50000000001); // 把指定的小数位先转换成整数.多余的小数位四舍五入
  let cents = num%Math.pow(10,cent);       // 求出小数位数值
  num = Math.floor(num/Math.pow(10,cent)).toString();  // 求出整数位数值
  cents = cents.toString();        // 把小数位转换成字符串,以便求小数位长度

  // 补足小数位到指定的位数
  while(cents.length<cent)
    cents = "0" + cents;

  if(isThousand) {
    // 对整数部分进行千分位格式化.
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
      num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
  }

  if (cent > 0)
    return (((sign)?'':'-') + num + '.' + cents);
  else
    return (((sign)?'':'-') + num);
}
export {
  number
}

如果你是vue用户用户请继续看 vue全局注册指令

/**
 * User: sheyude
 * Date: 2017/9/4 0004
 * Time: 上午 11:00
 *
 */
import {number} from './numberDirective'


import Vue from 'vue'

Vue.directive('numbers',number)

vue 使用方式 input 里面加入v-numbers就行

<template>
  <input type="text" class="form-control" placeholder="" v-numbers v-model="valueData">
</template>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 对Cookie 操作的封装小结
Dec 31 Javascript
妙用Jquery的val()方法
Jun 27 Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 Javascript
Javascript玩转继承(二)
May 08 Javascript
JavaScript验证电子邮箱的函数
Aug 22 Javascript
javascript insertAfter()定义与用法示例
Jul 25 Javascript
JavaScript实现大图轮播效果
Jan 11 Javascript
jquery获取transform里的值实现方法
Dec 12 jQuery
解决vue2.0动态绑定图片src属性值初始化时报错的问题
Mar 14 Javascript
浅谈微信页面入口文件被缓存解决方案
Sep 29 Javascript
深入了解js原型模式
May 30 Javascript
jQuery实现聊天对话框
Feb 08 jQuery
vue监听scroll的坑的解决方法
Sep 07 #Javascript
react高阶组件经典应用之权限控制详解
Sep 07 #Javascript
React + webpack 环境配置的方法步骤
Sep 07 #Javascript
微信小程序之页面拦截器的示例代码
Sep 07 #Javascript
基于js粘贴事件paste简单解析以及遇到的坑
Sep 07 #Javascript
微信小程序实现轮播图效果
Sep 07 #Javascript
使用mint-ui开发项目的一些心得(分享)
Sep 07 #Javascript
You might like
PHP下escape解码函数的实现方法
2010/08/08 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
初探nodeJS
2017/01/24 NodeJs
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
重命名批处理python脚本
2013/04/05 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
Python for i in range ()用法详解
2020/09/18 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
pycharm + django跨域无提示的解决方法
2020/12/06 Python
白色公司:The White Company
2017/10/11 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
致长跑运动员加油稿
2014/02/20 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
聚会通知怎么写
2015/04/23 职场文书
贷款收入证明格式
2015/06/24 职场文书
公司财务管理制度
2015/08/04 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
如何Tomcat中使用ipv6地址
2022/05/06 Servers