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 相关文章推荐
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
JavaScript中的分号插入机制详细介绍
Feb 11 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
JavaScript实现删除,移动和复制文件的方法
Aug 05 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
Nov 04 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
Nov 07 Javascript
jQuery动态增减行的实例代码解析(推荐)
Dec 05 Javascript
命令行批量截图Node脚本示例代码
Jan 25 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
JavaScript实现打砖块游戏
Feb 25 Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 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实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
用实例分析Python中method的参数传递过程
2015/04/02 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
const和static readonly区别
2013/05/20 面试题
办公文员的工作岗位职责
2013/11/12 职场文书
中专三年学习的个人自我评价
2013/12/12 职场文书
新领导上任欢迎词
2014/01/13 职场文书
表彰大会主持词
2014/03/26 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
公司员工奖惩制度
2015/08/04 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
商业计划书范文
2019/04/24 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL