千位符

知识点分析:

1.正则表达式

(?=):正向零宽断言

\B:匹配非单词边界

\d{3}:匹配三个数字字符
+:与前面的\d{3}结合表示匹配3的整数倍个数字字符
$:字符串结尾

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
 

    <div id="app">
        <h4>说明:这个版本是针对保留两位小数的浮点数进行过滤格式化的</h4>
        <input type="number" v-model="num" />
        <p>{{num|NumFormat}}</p>
    </div>
   
    

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vuex@3.5.1/dist/vuex.js"></script> 
    <script>
		// Vue.filter('NumFormat', function(value) {
			// if(!value) return '0.00';
			
			/*原来用的是Number(value).toFixed(0),这样取整时有问题,例如0.51取整之后为1,感谢Nils指正*/
			/*后来改成了 Number(value)|0,但是输入超过十一位就为负数了,具体见评论 */
			// var intPart = Number(value) - Number(value)%1; //获取整数部分(这里是windy93的方法)
			// var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //将整数部分逢三一断
          

			// var floatPart = ".00"; //预定义小数部分
			// var value2Array = value.toString().split(".");

			//=2表示数据有小数位
			// if(value2Array.length == 2) {
			// 	floatPart = value2Array[1].toString(); //拿到小数部分

			// 	if(floatPart.length == 1) { //补0,实际上用不着
			// 		return intPartFormat + "." + floatPart + '0';
			// 	} else {
			// 		return intPartFormat + "." + floatPart;
			// 	}

			// } else {
			// 	return intPartFormat + floatPart;
			// }

		// })

		var app = new Vue({
			el: "#app",
			data: {
				num: 4444444444
			},
			methods:{

			},
			filters:{
				NumFormat:function(value){
					if(!value) return '0.00';
					return value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')	
								}
			}
		})
	</script>
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值