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 文件夹选择框的两种解决方案
Jul 01 Javascript
JQuery 实现的页面滚动时浮动窗口控件
Jul 10 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
Dec 15 Javascript
基于jQuery试卷自动排版系统
Jul 18 Javascript
AngularJS基础学习笔记之简单介绍
May 10 Javascript
JS实现在状态栏显示打字效果完整实例
Nov 02 Javascript
js clearInterval()方法的定义和用法
Nov 11 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
js中创建对象的几种方式
Feb 05 Javascript
Vuex模块化实现待办事项的状态管理
Mar 15 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 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 cli 小技巧
2013/06/03 PHP
php树型类实例
2014/12/05 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
微信小程序canvas实现签名功能
2021/01/19 Javascript
跟老齐学Python之做一个小游戏
2014/09/28 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python使用tkinter实现简单计算器
2018/01/30 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
Python3 翻转二叉树的实现
2019/09/30 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
肯尼迪就职演说稿
2013/12/31 职场文书
职工代表大会主持词
2014/04/01 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
Python OpenCV实现图像模板匹配详解
2022/04/07 Python
Linux中如何安装并部署Redis
2022/04/18 Servers