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+xml技术实现分页浏览
Jul 27 Javascript
javascript 弹出层组件(升级版)
May 12 Javascript
查看大图功能代码jquery版
Nov 05 Javascript
node.js中的fs.rmdir方法使用说明
Dec 16 Javascript
JavaScript类的写法
Sep 17 Javascript
微信公众号 摇一摇周边功能开发
Dec 08 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
基于zTree树形菜单的使用实例
Dec 25 Javascript
Angular 项目实现国际化的方法
Jan 08 Javascript
微信小程序实现左侧滑动导航栏
Apr 08 Javascript
解决vue组件中click事件失效的问题
Nov 09 Javascript
jquery插件懒加载的示例
Oct 24 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支持断点续传、分块下载的类
2016/05/02 PHP
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
layui表格实现代码
2017/05/20 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
深入解析Python中的线程同步方法
2016/06/14 Python
Python 面试中 8 个必考问题
2018/11/16 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
世界最大的票务市场:viagogo
2017/02/16 全球购物
法律七进实施方案
2014/03/15 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
道士塔读书笔记
2015/06/30 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL