可能不太精致 代码不够优化,
function thousand(text){
//将传过来的数据转换成字符串
var str=text.toString();
//判断是否存在$或者¥符号 后缀是否是'0.00'
var prefix=/\¥/g.test(str)?'¥':(/\$/g.test(str)?'$':'');
var postfix=/\¥|\$/g.test(str)?'.00':'';
//消除'.' 因为有些值比如 $10.00
if(str.indexOf(".")!=-1){
var result=/\./g.exec(str);
var result2=str.substr(0,result['index']);//获取小数点前的所有值
}else{
var result2=str;
}
//将非数字剔除
var num=result2.replace(/[\D*]/g,'');
//将字符串换成数组 下面可以使用splice函数
var arr=num.split('');
//获取有多少个分割点
var dot_num=Math.ceil(arr.length/3)-1;
if(dot_num<0){//如果数字的值大小根本达不到上千 就直接返回
return str;
}
for(var i=1,j=0;i<=dot_num;i++,j++){
//给数组添加上分割点','
arr.splice((arr.length-3*i-j),0,',');
}
//返回数字 如果传过来的数字有¥或者有$或者有‘.00’就返回相应的数值
return prefix+arr.join('')+postfix;
}