JS转换Decimal带千分号的字符串显示
var numberChars = "0123456789";
/* Convert to decimal string */
function toDecimalString(value, place, hasDollarSign) {
var n = 2;
var ds = true;
if (place != null && typeof (place) == 'number') {
n = place;
}
if (hasDollarSign != null && typeof (hasDollarSign) == 'boolean') {
ds = hasDollarSign;
}
if (value != null && typeof (value) == 'number') {
var v = value.toFixed(n); var str = v.toString();
if (str != "") {
//用于判断千位符的数量变化
var pren = str.split(',').length - 1;
//合法Decimal格式字符串, 可以含千位符(,号)
var pattern = '^-?0(\\.\\d+)?$|^-?[1-9]\\d*(\\.\\d+)?$|^-?([1-9][0-9]{0,2},)(\\d{3},)*(\\d{3})(\\.\\d+)?$';
//合法字符集, 不包括,号
var pattern2 = '^[0-9\.-]*$'; var reg = new RegExp(pattern, 'g');
var reg2 = new RegExp(pattern2, 'g');
//转换之前, 去除,号
var temp = str.replace(/,/, "");
while (temp.indexOf(',') >= 0) {
temp = temp.replace(/,/, "");
}
var nstr = '';
if (reg2.test(temp)) {
//除(/)数和模(%)数
var k1 = 0, k2 = 0;
//转换开始和结束位置
var start = 0, end = 0;
//千位符(,号)
var pp = ',';
//计数(3的倍数)
var p = 0;
//判断前置的非数字符号(这里是-号)
for (; start < temp.length; start++) {
if (numberChars.indexOf(temp.substring(start, start + 1)) >= 0) {
break;
}
nstr = nstr.concat(temp.substring(start, start + 1));
}
//小数符号(.号)的位置
var pIndex = temp.indexOf('.');
//存在小数符(.号), 即以它的位置为结束位置, 否则以字符串结尾为结束位置
if (pIndex >= 0) {
end = pIndex;
} else {
end = temp.length;
}
k2 = (end - start) % 3;
k1 = parseInt((end - start) / 3); for (var i = 0; i < k2; i++) {
nstr = nstr.concat(temp.substring(start + i, start + i + 1));
}
if (k1 > 0 && k2 > 0) {
nstr = nstr.concat(pp);
}
for (var i = k2 + start; i < end; i++) {
nstr = nstr.concat(temp.substring(i, i + 1));
p++;
if (p == 3 && i + 1 != end) {
p = 0;
nstr = nstr.concat(pp);
}
}
for (var i = end; i < temp.length; i++) {
nstr = nstr.concat(temp.substring(i, i + 1));
}
} else {
nstr = str;
}
if (ds) {
return '$' + nstr;
} else {
return nstr;
}
}
}
return 'Value is null or not a number.';
}
JS转换Decimal带千分号的字符串显示的更多相关文章
- java List<String> 转换成带逗号的字符串
使用commons-lang3-3.3.2.jar org.apache.commons.lang3.StringUtils.join(applyNameList, ",");
- JS 实现"可读"字符串转换成"二进制的01"字符串
问题起源 看过一个漫画, 两位程序员在办公司交流, 可是说的语言却是010101类似的字符串.周围人很是惊异.计算机的世界,确实是由01组成的.今天突然想实现这个编码转换. 解决思路 学过C语言的都知 ...
- js格式化文件大小, 输出成带单位的字符串工具
/** * 格式化文件大小, 输出成带单位的字符串 * @method formatSize * @grammar formatSize( size ) => String * @grammar ...
- 【转】JS大总结(带实例)
JS大总结(带实例) JavaScript事务查询综合click() 对象.click() 使对象被点击.closed 对象.closed 对象窗口是否已封闭true/falseclearTimeou ...
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转 ...
- js转换成布尔类型boolean
/** * js转换成布尔值 * a.转换方法:Boolean(var) * b.数字转换成布尔,除了0与NaN,其余都是true * c.字符串转换成布尔,除了空串"",其余都是 ...
- LoadRunner 如何将英文的字符串转换成UTF-8格式的字符串?
7.48 如何手动转换字符串编码 1.问题提出 如何将英文的字符串转换成UTF-8格式的字符串? 2.问题解答 可以使用lr_convert_string_encoding函数将字符串从一种编码手动 ...
- double类型字符串转换成一个纯数字字符串和一个小数点位数的c++代码
今天工作中遇到一个要不一个double型的字符串转换成一个纯字数字符串和一个标志这个数字字符串的小数点有几位的int类型 例如:“23.123”--->“23123” + 3 比较简单.就是 ...
- SQL零星技术点:SQL中转换money类型数值转换为字符串问题
--SQL中转换money类型数值转换为字符串问题,直接转换就转为两位了,所以需要做一下处理.具体请看下述sql实例. 1 create table #test(price money) insert ...
随机推荐
- JS如何判断IE和火狐与Chrome浏览器
var isIE=navigator.userAgent.toUpperCase().indexOf("MSIE")?true:false; 类似的可以写var isFirefox ...
- OpenCV——人脸检测
OpenCV支持的目标检测的方法: 利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification) 1.加载级联分类器 CascadeClass ...
- [转载]启用 VIM 中的 Python 自动补全及提示功能
转载: http://zhongwei-leg.iteye.com/blog/941474 周围的同事不喜欢使用 VIM 写 Python 代码的原因之一就是,VIM 不能像 Visual Studi ...
- CSS3 @font-face 指定英文网页字体
@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体.可能有人要问 ...
- 在Python3.5下安装和测试Scrapy爬网站
1. 引言 Scrapy框架结构清晰,基于twisted的异步架构可以充分利用计算机资源,是爬虫做大的必备基础.本文将讲解如何快速安装此框架并使用起来. 2. 安装Twisted 2.1 同安装Lxm ...
- 异常处理与调试3 - 零基础入门学习Delphi52
异常处理与调试3 让编程改变世界 Change the world by program 两种结构的嵌套 要在一个过程里同时实现处理异常和保护资源分配,关键要保证"try-except&qu ...
- FWA winner | Car Visualizer WebGL
FWA winner | Car Visualizer WebGL Car Visualizer made in WebGL using ThreeJS. It requires a modern b ...
- 修改MySQL 5.5的max_allowed_packet属性的方法
今天在部署一个实验系统的时候,报出下面这个错: Your 'max_allowed_packet' variable is set to less than 16777216 Byte (16MB). ...
- apache FtpServer整合spring逻辑处理
上面我们的部署工作完成了,那么文件上传下载后,ftpserver会自动相应我们的上传下载操作,也就是说ftpServer服务器会得到触发,那么我们如果要得到文件的一些信息,比如说文件的路径.大小.类型 ...
- 见过的最好的Layout讲解,挺全的
见过的最好的Layout讲解,挺全的 1. http://wenku.baidu.com/link?url=-9wSWx-oLet8R51iXUbikEMWZF8DK4-n6AqoA5_fk3rtrh ...