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 相关文章推荐
又一个图片自动缩小的JS代码
Mar 10 Javascript
Javascript 错误处理的几种方法
Jun 13 Javascript
jquery蒙版控件实现代码
Dec 08 Javascript
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
Oct 11 Javascript
动态创建script标签实现跨域资源访问的方法介绍
Feb 28 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 Javascript
一起学写js Calender日历控件
Apr 14 Javascript
js实现可旋转的立方体模型
Oct 16 Javascript
微信小程序实现图片预加载组件
Jan 18 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 Javascript
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
php compact 通过变量创建数组
2016/11/15 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
Python中的迭代器漫谈
2015/02/03 Python
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
python多任务及返回值的处理方法
2019/01/22 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
详解Python sys.argv使用方法
2019/05/10 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
手术室护士长竞聘书
2014/03/31 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL