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,水平有待提高
Jan 31 Javascript
FileUpload上传图片(图片不变形)
Aug 05 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
基于JQuery的一句话搞定手风琴菜单
Sep 14 Javascript
jQuery中:password选择器用法实例
Jan 03 Javascript
js遍历map javaScript遍历map的简单实现
Aug 26 Javascript
Javascript日期格式化format函数的使用方法
Aug 30 Javascript
原生js实现水平方向无缝滚动
Jan 10 Javascript
小程序tab页无法传递参数的方法
Aug 03 Javascript
详解jQuery设置内容和属性
Apr 11 jQuery
seajs和requirejs模块化简单案例分析
Aug 26 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
Feb 10 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代码
2013/12/03 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
ext实现完整的登录代码
2008/08/08 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
python实现函数极小值
2019/07/10 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
怎样声明接口
2014/09/19 面试题
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
青安岗事迹材料
2014/05/14 职场文书
战略合作意向书
2014/07/29 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python