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 带有滚动条的表格,标题固定,带排序功能.
Nov 13 Javascript
js 火狐下取本地路径实现思路
Apr 02 Javascript
js window.open弹出新的网页窗口
Jan 16 Javascript
用javascript对一个json数组深度赋值示例
Jul 27 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
Nov 07 Javascript
javascript入门之数组[新手必看]
Nov 21 Javascript
jstree的简单实例
Dec 01 Javascript
微信小程序 开发之快递查询功能的实现
Jan 09 Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 Javascript
详解Vue-axios 设置请求头问题
Dec 06 Javascript
VuePress 中如何增加用户登录功能
Nov 29 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
一个SQL管理员的web接口
2006/10/09 PHP
Smarty模板快速入门
2007/01/04 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
php设计模式之委托模式
2016/02/13 PHP
非常实用的php验证码类
2016/05/15 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
require.js的用法详解
2015/10/20 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
Vue中的v-for指令不起效果的解决方法
2018/09/27 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
python中requests模块的使用方法
2015/04/08 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
银行求职自荐书
2014/06/25 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
地震捐款倡议书
2014/08/29 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
工作检讨书大全
2015/01/26 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
岗位聘任协议书
2015/09/21 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js