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 CSS修改学习第一章 查找位置
Feb 19 Javascript
jQuery aminate方法定位到页面具体位置
Dec 26 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
JQuery菜单效果的两个实例讲解(3)
Sep 17 Javascript
js下将金额数字每三位一逗号分隔
Feb 19 Javascript
全国省市二级联动下拉菜单 js版
May 10 Javascript
Bootstrap table两种分页示例
Dec 23 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
lhgcalendar时间插件限制只能选择三个月的实现方法
Jul 03 Javascript
JQuery扩展对象方法操作示例
Aug 21 jQuery
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 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
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
理解Javascript_03_javascript全局观
2010/10/11 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
Python时间获取及转换知识汇总
2017/01/11 Python
解读python如何实现决策树算法
2018/10/11 Python
Django中的ajax请求
2018/10/19 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
Python中的__init__作用是什么
2020/06/09 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
单位授权委托书范本
2014/09/26 职场文书
小学生表扬稿范文
2015/05/05 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
pandas进行数据输入和输出的方法详解
2022/03/23 Python