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带千分号的字符串显示的更多相关文章

  1. java List<String> 转换成带逗号的字符串

    使用commons-lang3-3.3.2.jar org.apache.commons.lang3.StringUtils.join(applyNameList, ",");

  2. JS 实现"可读"字符串转换成"二进制的01"字符串

    问题起源 看过一个漫画, 两位程序员在办公司交流, 可是说的语言却是010101类似的字符串.周围人很是惊异.计算机的世界,确实是由01组成的.今天突然想实现这个编码转换. 解决思路 学过C语言的都知 ...

  3. js格式化文件大小, 输出成带单位的字符串工具

    /** * 格式化文件大小, 输出成带单位的字符串 * @method formatSize * @grammar formatSize( size ) => String * @grammar ...

  4. 【转】JS大总结(带实例)

    JS大总结(带实例) JavaScript事务查询综合click() 对象.click() 使对象被点击.closed 对象.closed 对象窗口是否已封闭true/falseclearTimeou ...

  5. 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中

    http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转 ...

  6. js转换成布尔类型boolean

    /** * js转换成布尔值 * a.转换方法:Boolean(var) * b.数字转换成布尔,除了0与NaN,其余都是true * c.字符串转换成布尔,除了空串"",其余都是 ...

  7. LoadRunner 如何将英文的字符串转换成UTF-8格式的字符串?

    7.48  如何手动转换字符串编码 1.问题提出 如何将英文的字符串转换成UTF-8格式的字符串? 2.问题解答 可以使用lr_convert_string_encoding函数将字符串从一种编码手动 ...

  8. double类型字符串转换成一个纯数字字符串和一个小数点位数的c++代码

    今天工作中遇到一个要不一个double型的字符串转换成一个纯字数字符串和一个标志这个数字字符串的小数点有几位的int类型 例如:“23.123”--->“23123” + 3   比较简单.就是 ...

  9. SQL零星技术点:SQL中转换money类型数值转换为字符串问题

    --SQL中转换money类型数值转换为字符串问题,直接转换就转为两位了,所以需要做一下处理.具体请看下述sql实例. 1 create table #test(price money) insert ...

随机推荐

  1. BOOST中如何实现线程安全代码

    1 需要include <boost/thread.hpp> 2 背景知识请参考<boost程序库完全开发指南>第12章 3 编绎:g++ -o mthread mthread ...

  2. Qt Assistant 工作机制

    Qt Assistant 是Qt 的助手,我们在看帮助的时候要用到的,它可以记住上一次你访问的位置. 1.   所以在你调用Qt Assistant为我们自己的程序写help的时候要记得修改qhcp配 ...

  3. 调试Linq的时候获得相对应的SQL

    (query as System.Data.Objects.ObjectQuery).ToTraceString()

  4. ASP.NET中多个相同name的控件在后台正确取值

    有兽,   页面上可能有多个相同name的Html表单控件,   一般在后台使用Request.Form[“name”]取值,并用‘,’分隔.   但是当值中包含逗号时,   取值就会出现异常,   ...

  5. 获取UILabel上最后一个字符串的位置。获取文字长度和高度,自动换行

    //行的高度. -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPat ...

  6. 查文件大小列表 MySQL问题

    du -sh /* | sort -nr 打开网站发现Too many connections The server quit without updating PID file (/usr/loca ...

  7. Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)

    1. 项目背景 在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端 ...

  8. haproxy之配置文件解析

    功能--> 提供高可用/负载均衡/基于tcp和http应用的代理;支持虚拟主机,特别适用于负载特大的web站点. 配置文件解析--> #配置文件-->开启/proc/net/ipv4 ...

  9. 禁用物料不允许BOM

    应用 Oracle Bill Of   Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...

  10. Fedora安装qt总结四种方法

    在fedora上安装qt有四种方法,本人由于初次接触fedora,所以还是耐心的把三个方法都测试了一遍. 1.  下载源码,手动编译,选择路径安装,请参考<fedora15下搭建QT开发环境及编 ...