js千分位分隔,数字货币化—4种方法(含正则)

方法1-整数货币化

 	// 整数货币化
function intCurrency(num) {
var reg = new RegExp("^[\\d]+[\\d|.]+$", 'g')
if (!reg.test(num)) {
return "只能为整数或小数!";
}
var numString = parseInt(num).toString();
var len = numString.length;
if (len < 3) {
return num;
}
var n = len % 3;
if (n > 0) {
return numString.slice(0, n) + "," + numString.slice(n, len).match(/\d{3}/g).join(",");
} else {
return numString.slice(n, len).match(/\d{3}/g).join(",");
}
}
console.group("------------整数货币化")
console.log(intCurrency("abs"))
console.log(intCurrency("0"))
console.log(intCurrency("10"))
console.log(intCurrency("100"))
console.log(intCurrency("1000"))
console.log(intCurrency("10000"))
console.log(intCurrency("100000"))
console.log(intCurrency("1000000"))
console.log(intCurrency("10000000"))
console.log(intCurrency("100000000"))
console.log(intCurrency("1000000000"))
console.log(intCurrency("1000000000.0"))
console.log(intCurrency("1000000000.00"))
console.log(intCurrency("1000000000.000"))

  

方法2-小数货币化

 	// 整数部分
function intCurrency(num) {
if (num === undefined) {
return '';
}
var len = num.length;
if (len < 3) {
return num;
}
var n = len % 3;
if (n > 0) {
return num.slice(0, n) + "," + num.slice(n, len).match(/\d{3}/g).join(",");
} else {
return num.slice(n, len).match(/\d{3}/g).join(",");
}
}
// 小数部分
function decimalCurrency(num) {
if (num === undefined) {
return '';
}
var len = num.length; // 小数部分长度
if (len < 3) { // 小于三位数
return num;
}
var n = len % 3;
if (n > 0) { // 位数不是3的倍数
return num.slice(0, len - n).match(/\d{3}/g).join(',') + ',' + num.slice(len - n);
} else {
return num.slice(0, len - n).match(/\d{3}/g).join(',')
}
}
// 货币化
function currency(num) {
var integerPart; // 整数部分
var decmialPart; // 小数部分
num = num.toString();
if (num.includes(".")) {
integerPart = num.split('.')[0];
decmialPart = num.split('.')[1];
} else {
integerPart = num;
}
return intCurrency(integerPart) + (decmialPart !== undefined ? ('.' + decimalCurrency(decmialPart)) : '');
}
console.group("------------整数或小数货币化")
console.log(currency("0"))
console.log(currency("10"))
console.log(currency("100"))
console.log(currency("1000"))
console.log(currency("10000"))
console.log(currency("100000"))
console.log(currency("1000000"))
console.log(currency("10000000"))
console.log(currency("100000000"))
console.log(currency("1000000000"))
console.log(currency("1000000000.0"))
console.log(currency("1000000000.00"))
console.log(currency("1000000000.000"))
console.log(currency("1000000000.0000"))
console.log(currency("1000000000.00000"))

  

方法3-整数正则货币化1

 	// 直接使用正则
function currency(num) {
num = parseInt(num);
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
console.group("------------取整数,正则货币化1")
console.log(currency("0"))
console.log(currency("10"))
console.log(currency("100"))
console.log(currency("1000"))
console.log(currency("10000"))
console.log(currency("100000"))
console.log(currency("1000000"))
console.log(currency("10000000"))
console.log(currency("100000000"))
console.log(currency("1000000000"))
console.log(currency("1000000000.0"))
console.log(currency("1000000000.00"))
console.log(currency("1000000000.000"))
console.log(currency("1000000000.0000"))
console.log(currency("1000000000.00000"))

  

方法4-整数正则货币化2

 	// 直接使用正则
function currency(num) {
num = parseInt(num);
return num.toString().replace(/(?=(\B)(\d{3})+$)/g, ',');
}
console.group("------------取整数,正则货币化2")
console.log(currency("0"))
console.log(currency("10"))
console.log(currency("100"))
console.log(currency("1000"))
console.log(currency("10000"))
console.log(currency("100000"))
console.log(currency("1000000"))
console.log(currency("10000000"))
console.log(currency("100000000"))
console.log(currency("1000000000"))
console.log(currency("1000000000.0"))
console.log(currency("1000000000.00"))
console.log(currency("1000000000.000"))
console.log(currency("1000000000.0000"))
console.log(currency("1000000000.00000"))

  

正则校验

// 正整数或小数 /^[0-9]+(\.[0-9]+)?$/g
// 正、负整数或小数,也可不输入正负 /^(\+|-)?\d+(\.\d+)?$/g

  

转载于:https://blog.csdn.net/Kindergarten_Sir/article/details/110382037

js千分位分隔,数字货币化方法学习记录的更多相关文章

  1. js千分位的函数

    不错的js千分位函数,适用于将金额每3位用“,”分隔 /*for price using thousands separator */ function fprice(s,n){ s = parseF ...

  2. 封装js千分位加逗号和删除逗号

    //封装js千分位加逗号和删除逗号 alert( format(2545678754.020001) ) //2,545,678,754.03 alert( format(-2545678754.02 ...

  3. js千分位处理

    一.去掉千分位 function removeThousands(num) { var x = num.split(','); return parseFloat(x.join("" ...

  4. JS千分位格式化方法,以及多种方法性能比较

    方法一字符串版 function toThousands(num) { var result = '', counter = 0; num = (num || 0).toString(); for ( ...

  5. js 千分位符号 正则方法

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

  6. js判断类型为数字的方法实现总汇——原生js判断isNumber()

    方法一[推荐]: 最容易想到的是用typeof来判断是否是number类型 ,但是如果为NaN会被认为也是number类型,因此我们需要使用isNaN来排除NaN的情况. function isNum ...

  7. js中字符串转换为数字的方法

    parseInt; parseFload; +; parseInt() 和 parseFloat() 函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有数字字符 ...

  8. zepto.1.1.6.js源码中的each方法学习笔记

    each方法接受要遍历的对象和对应的回调函数作为参数,它的作用是: 1.如果要遍历的对象是类似数组的形式(以该对象的length属性值的类型是否为number类型来判断),那么就把以要遍历的对象为执行 ...

  9. JS把字符串转换为数字的方法

     方法: (1)Number(),强制类型转换,接受一个参数. (2)parseInt(),把字符串转换为整形数字,可以接受一个或两个参数,其中第二个参数代表转换的基数,能够正确的将二进制.八进制.十 ...

随机推荐

  1. Promise 之初探

    陈旧的知识应该更新一下了,先尝试一下 Promise ,主要参考 https://www.cnblogs.com/whybxy/p/7645578.html 定义一个函数 直接上干货,定义一个函数: ...

  2. 54 个官方 Spring Boot Starters 出炉!别再重复造轮子了…….

    在之前的文章,栈长介绍了 Spring Boot Starters,不清楚的可以点击链接进去看下. 前段时间 Spring Boot 2.4.0 也发布了,本文栈长再详细总结下最新的 Spring B ...

  3. Mysql5.7.20安装手记

    Mysql到5.7之后安装较之前有了很大的不同,特别是解压缩版,可能安装速度较之前有所减少,但对于我们这种一直使用5.5的我来说不知道步骤还真是挺费劲的.下面详细记一下我安装的过程. 1.下载mysq ...

  4. C#中的深度学习(四):使用Keras.NET识别硬币

    在本文中,我们将研究一个卷积神经网络来解决硬币识别问题,并且我们将在Keras.NET中实现一个卷积神经网络. 在这里,我们将介绍卷积神经网络(CNN),并提出一个CNN的架构,我们将训练它来识别硬币 ...

  5. 使用aspnet_compiler对web程序进行预编译

    前言 本例使用的是asp.net中的webform项目,使用.net框架为.net3.5 操作步骤 正常的web项目发布步骤 发布方法:文件系统 目标位置:发布后的项目文件的路径,可自定义. 打开wi ...

  6. Kafka超详细学习笔记【概念理解,安装配置】

    目录 本篇要点 Kafka介绍 作为流处理平台的三种特性 主要应用 四个核心API 基本术语 快速开始 安装配置Zookeeper 下载kafka 配置文件 Windows的命令 启动Zookeepe ...

  7. springboot(一)入门篇

    作者:纯洁的微笑 出处:www.ityouknow.com 版权所有,欢迎保留原文链接进行转载:) 根据原文以下内容略有调整(由于SpringBoot版本更新引起) 什么是spring boot Sp ...

  8. [Machine Learning] 逻辑回归 (Logistic Regression) -分类问题-逻辑回归-正则化

    在之前的问题讨论中,研究的都是连续值,即y的输出是一个连续的值.但是在分类问题中,要预测的值是离散的值,就是预测的结果是否属于某一个类.例如:判断一封电子邮件是否是垃圾邮件:判断一次金融交易是否是欺诈 ...

  9. 关于Byte(1) 与int (1) 比较原理

    最近笔者遇到一个问题 Integer cameraType=1 if (cameraType.intValue() == SourceTypeEnum.ANFANG.getType(){ } 枚举值是 ...

  10. 自动化运维工具-Ansible之5-流程控制

    自动化运维工具-Ansible之5-流程控制 目录 自动化运维工具-Ansible之5-流程控制 playbook条件语句 单条件 多条件 多条件运算 示例 playbook循环语句 with_ite ...