精华内容
下载资源
问答
  • 千位符

    2020-10-09 22:57:11
    知识点分析: 1.正则表达式 (?=):正向零宽断言 \B:匹配非单词边界 \d{3}:匹配三个数字字符 +:与前面的\d{3}结合表示匹配3的整数倍个数字字符 $:字符串结尾 <!...meta name="viewport" content="width=device-...

    知识点分析:

    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>
    
    展开全文
  • 来格式化数字,默认情况千位符是用逗号间隔的,比如: 复制代码 代码如下: echo number_format(“10000.01231”, 2); //取小数点后2位,输出的结果为:10,000.01 千位默认是用逗号间隔。 如果我们后台验证从客户端...
  • js 千位分隔符千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在...效果图:运行效果:http://dukecui1.oschina.io/jsthousandsseparator/js千位符 | js 千位分隔符 | js 金额格式化// 将金额类型转为数字...

    js 千位分隔符

    千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。

    效果图:

    33bf8a70e9121706be17e2de2bd5ce50.png

    运行效果:http://dukecui1.oschina.io/jsthousandsseparator/

    js千位符 | js 千位分隔符 | js 金额格式化

    // 将金额类型转为数字类型

    function toNum(str) {

    return str.replace(/\,|\¥/g, "");

    }

    // 保留两位小数(四舍五入)

    function toPrice(num) {

    num = parseFloat(toNum(num)).toFixed(2).toString().split(".");

    num[0] = num[0].replace(new RegExp('(\\d)(?=(\\d{3})+$)','ig'),"$1,");

    return "¥" + num.join(".");

    }

    // 保留两位小数(不四舍五入)

    function toPrice1(num) {

    num = parseFloat(toNum(num).replace(/(\.\d{2})\d+$/,"$1")).toFixed(2).toString().split(".");

    num[0] = num[0].replace(new RegExp('(\\d)(?=(\\d{3})+$)','ig'),"$1,");

    return "¥" + num.join(".");;

    }

    // 不处理小数部分

    function toPrice2(num) {

    var source = toNum(num).split(".");

    source[0] = source[0].replace(new RegExp('(\\d)(?=(\\d{3})+$)','ig'),"$1,");

    return "¥" + source.join(".");

    }

    js千位符 | js 千位分隔符 | js 金额格式化

    保留两位小数(四舍五入): 

    保留两位小数(不四舍五入):

    不处理小数部分:

    展开全文
  • vue千位符使用

    千次阅读 2020-01-16 17:20:02
    我直接把封装过千位符与解析千位符为数字封装的搬上 拼音容易理解 拼音走一波 //封装千位符 var qianwei_fu=function(num){ var reg =/\d(?=(?:\d{3})+\b)/g return num.replace(reg,'$&,') }...

    随心而动,当做笔记-----不喜勿喷

    //正则
    /\d(?=(?:\d{3})+\b)/g
    

    我直接把封装过千位符与解析千位符为数字封装的搬上
    拼音容易理解 拼音走一波

    //封装千位符
    var qianwei=function(num){
        var reg =/\d(?=(?:\d{3})+\b)/g
        return num.replace(reg,'$&,')
    }
    export default qianwei;
    
    //封装千位符转数字
    var shuzi=function(num){
        if(!isNaN(Number(num))){
            return Number(num)
        }else{
            return Number(num.replace(/,/g,''))
        }
    }
    export default shuzi;
    
    展开全文
  • js千位符

    2017-08-13 00:15:11
    ...JS实现的4种数字千位符格式化方法分享 ...投稿:junjie 字体:...这篇文章主要介绍了JS实现的4种数字千位符格式化方法分享,本文给出了4种千分位格式化方法并对它们的性能做了比较,需要的朋友可以参考下

    转载自:http://www.jb51.net/article/61585.htm


    JS实现的4种数字千位符格式化方法分享

    投稿:junjie 字体:[增加 减小] 类型:转载 时间:2015-03-02 我要评论

    这篇文章主要介绍了JS实现的4种数字千位符格式化方法分享,本文给出了4种千分位格式化方法并对它们的性能做了比较,需要的朋友可以参考下

    所谓的数字千分位形式,即从个位数起,每三位之间加一个逗号。例如“10,000”。针对这个需求,我起初写了这样一个函数:

    复制代码代码如下:

    // 方法一
    function toThousands(num) {
        var result = [ ], counter = 0;
        num = (num || 0).toString().split('');
        for (var i = num.length - 1; i >= 0; i--) {
            counter++;
            result.unshift(num[i]);
            if (!(counter % 3) && i != 0) { result.unshift(','); }
        }
        return result.join('');
    }

    方法一的执行过程就是把数字转换成字符串后,打散为数组,再从末尾开始,逐个把数组中的元素插入到新数组(result)的开头。每插入一个元素,counter就计一次数(加1),当counter为3的倍数时,就插入一个逗号,但是要注意开头(i为0时)不需要逗号。最后通过调用新数组的join方法得出结果。

    方法一比较清晰易懂,也在项目中用了一段时间。但是直觉告诉我,它的性能并不好。

    方法二——方法一的字符串版

    复制代码代码如下:

    // 方法二
    function toThousands(num) {
        var result = '', counter = 0;
        num = (num || 0).toString();
        for (var i = num.length - 1; i >= 0; i--) {
            counter++;
            result = num.charAt(i) + result;
            if (!(counter % 3) && i != 0) { result = ',' + result; }
        }
        return result;
    }

    方法二是方法一的改良版,不把字符串打散为数组,始终对字符串操作。

    方法三——循环匹配末尾的三个数字

    复制代码代码如下:

    // 方法三
    function toThousands(num) {
        var num = (num || 0).toString(), re = /\d{3}$/, result = '';
        while ( re.test(num) ) {
            result = RegExp.lastMatch + result;
            if (num !== RegExp.lastMatch) {
                result = ',' + result;
                num = RegExp.leftContext;
            } else {
                num = '';
                break;
            }
        }
        if (num) { result = num + result; }
        return result;
    }

    方法三是完全不同的算法,通过正则表达式循环匹配末尾的三个数字,每匹配一次,就把逗号和匹配到的内容插入到结果字符串的开头,然后把匹配目标(num)赋值为还没匹配的内容(RegExp.leftContext)。此外,还要注意:

    1.如果数字的位数是3的倍数时,最后一次匹配到的内容肯定是三个数字,但是最前面的三个数字前不需要加逗号;
    2.如果数字的位数不是3的倍数,那num变量最后肯定会剩下1到2个数字,循环过后,要把剩余的数字插入到结果字符串的开头。

    虽然方法三减少了循环次数(一次循环处理三个字符),但由于用到了正则表达式,一定程度上增加了消耗。

    方法四——方法三的字符串版

    复制代码代码如下:

    // 方法四
    function toThousands(num) {
        var num = (num || 0).toString(), result = '';
        while (num.length > 3) {
            result = ',' + num.slice(-3) + result;
            num = num.slice(0, num.length - 3);
        }
        if (num) { result = num + result; }
        return result;
    }

    事实上,截取末尾三个字符的功能可以通过字符串类型的slice、substr或substring方法做到。这样就可以避免使用正则表达式。

    方法五——分组合并法

    复制代码代码如下:

    // 方法五
    function toThousands(num) {
        var num = (num || 0).toString(), temp = num.length % 3;
        switch (temp) {
            case 1:
                num = '00' + num;
                break;
            case 2:
                num = '0' + num;
                break;
        }
        return num.match(/\d{3}/g).join(',').replace(/^0+/, '');
    }

    先把数字的位数补足为3的倍数,通过正则表达式,将其切割成每三个数字一个分组,再通过join方法添加逗号,最后还要把补的0移除。

    方法六——懒人法

    复制代码代码如下:

    // 方法六
    function toThousands(num) {
        return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
    }

    ​一直觉得这个格式化是可以通过一条正则表达式替换做出来的,但是需要用到断言等写法,无奈自己对这部分不太熟。Google了一下,还真找到了这么一条正则表达式,这估计是代码最短的实现。

    测试结果

    数字 执行5000次消耗的时间(ms)
    方法一 方法二 方法三 方法四 方法五 方法六
    1 4 1 3 1 14 2
    10 14 1 3 0 7 2
    100 12 1 2 4 5 3
    1000 13 2 3 2 9 5
    10000 21 4 3 1 6 3
    100000 21 3 2 1 5 6

    方法一和方法二的强烈对比表明,字符串操作的效率比数组操作的效率要高得多;方法六的测试结果告诉我们,代码长短跟性能高低没有关系。方法四的综合性能是最好的(但为何num为100的时候,性能有所降低呢,这个实在不解),主要原因是:

    1.对比方法一、二,每次操作3个字符而不是1个字符,减少循环次数;
    2.对比方法三、五、六,没有使用正则表达式,减少了消耗。



    展开全文
  • Android 字符串格式化 千位符

    千次阅读 2019-04-25 18:41:53
    Android 字符串格式化 千位符 字符串格式化工具类 千位符 & 千位符保留小数点后两位 import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.ParseException; public class ...
  • js版数字转千位符,通用
  • 千位符方法

    2018-08-29 11:35:47
    这篇文章主要介绍了JS实现的4种数字千位符格式化方法分享,本文给出了4种千分位格式化方法并对它们的性能做了比较,需要的朋友可以参考下 所谓的数字千分位形式,即从个位数起,每三位之间加一个逗号。例如“10,000”...
  • 主要介绍了java使用正则表达为数字添加千位符的简单方法,需要的朋友可以参考下
  • 前端原生JS动态给数字添加千位符 方法 之前找过很多网上的给数字动态添加千位符的代码,发现有很多都不靠谱,今天自己整理了一下,欢迎各位大佬提bug 废话不多说,先上代码 //千位符 thousand:function(valueList){ ...
  • 主要介绍了JS实现的4种数字千位符格式化方法分享,本文给出了4种千分位格式化方法并对它们的性能做了比较,需要的朋友可以参考下
  • Vue千位符换算工具

    2021-03-08 17:40:53
    Vue千位符换算js /* eslint-disable no-param-reassign */ // 货币格式化,千份符且保留两位小数 const formatCurrency = (value, blankValue = ‘-’) => { if (!value) { return blankValue; } try { value = ...
  • 主要介绍了node.js中格式化数字增加千位符的几种方法,本文给出3种实现方法,并分别给出实例代码,需要的朋友可以参考下
  • 千位符 详细解读

    2019-10-11 18:53:07
    // 千位符 letkk=num.toString().replace(/(\d)(?=(?:\d{3})+$)/g,'$1,'); 总方式: (\d)(?=(?:\d{3}))查找(?:\d{3})前面的\d(数字) (?:)和()等同但是非捕获分组匹配的值不会保存起来 $1表示捕获内容...
  • 需求:全部价格都用千位符过滤。 wepy2框架不支持vue的filters,只能使用小程序本身的wxs来快速解决这个需求。 1.新建filters.wxs文件,千位符参考博客:http://beteshis.com/6T2R //单价增加千位符 function ...
  • js 千位分隔 千位分隔,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔,以便更加容易...
  • StringFormat={}{0:N2}}//格式话字符串,增加千位符,2保留小数点后2位 StringFormat={}{0:N0}}//格式话字符串,增加千位符,无小数点后 转载于:https://www.cnblogs.com/zsx-blog/p/7991488.html...
  • js实现千位符分隔

    2018-09-29 14:55:00
    前几天面试做保险项目的公司,被问到了一道实现千位符分割方法的题,乍一看挺简单,但做起来最后却没给出来一个合适的解决方法。回来自己琢磨了一个还行的答案。 var num = 3899000001, arr = []; num = ...
  • 来格式化数字,默认情况千位符是用逗号间隔的,比如:代码如下:echo number_format("10000.01231", 2);//取小数点后2位,输出的结果为:10,000.01 千位默认是用逗号间隔。如果我们后台验证从客户端获取来的这种格式...
  • 一行代码实现千位符

    2018-08-17 17:15:06
    vartoThousands = function(number) { return (number + '').replace(/(\d)(?=(\d{3})+$)/g, '$1,'); } 一行代码实现千位符
  • // 去掉金额数字的千位符(我是在vue提交数据的时候把对应要改变的值转换为正常数据传给后台 比方说 input的value="999,999,999 调用这个方法将值转换为 999999999") delcommafy(num) { //num 是你要改变的值 // ...
  • 数字转成千位符金额 function toThousandFilter(num) { return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ',')) } 千位符金额转成数字 function delcommafy(num) { ...
  • Java中MessageFormat.format 与千位符 1、当占位符替换的目标值为String类型时:结果保存不变 2、当占位符替换的目标值为int类型时:会自动转换为国家化数字 (国家化数字:在数字达到4位以上的时候会在千位后面加...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 950
精华内容 380
关键字:

千位符