数据格式问题(如:1234.536 --> 1,234.54),在线等待 1.100000000.035.toLocaleString()2.(1,234.54+"").replace(/\,/g, "") 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 牛!toLocaleString()还能这样用!不过手册上说:toLocaleString 只用来显示结果给用户;不要在脚本中用来做基本计算,因为返回的结果是随机器不同而不同的。???????? function formatNum(s) //将数字转换成三位逗号分隔的样式{ s += ""; if (!/^(\+|-)?\d+(\.\d+)?$/.test(s)) throw(new Error(-1, 'It isn\'t Number!')); var a = s.match(/^(\+|-)?(\d[^\.]+)(\.\d+)?$/), b = a[2], c=""; for (var i=b.length-3; i>-3; i=i-3) c = ","+ b.substring(i, i+3) + c; return(a[1] + c.substr(1) + a[3]);}alert(formatNum(-12345678.123));alert(formatNum("12345678.123"));alert(formatNum("10000000000000000000000000000000000000000")); 谢谢,非常感谢,但能否帮忙简单解释一下formatNum(s)中的代码啊,我想可能以后我在别的地方也能用到类似的东西啊 <script>var a=document.form1.text1.valueif(a.indexOf(",")!=-1)b=a.indexOf(","){a=a.substr(0,b)+a.substr(b+1,a.length)}</script> 凑和着看看吧!<script language="JavaScript"><!--function formatNum(s) //将数字转换成三位逗号分隔的样式{ s += ""; var reg1 = /^(\+|-)?(\d+)(\.\d+)?$/; //定义正则表达式 if (!reg1.test(s)) //判断s是否符合reg1的定义 throw(new Error(-1, 'It isn\'t Number!')); //抛出异常 var a = s.match(reg1), b = a[2], c=""; //定义a(a为一数组) //match 方法返回的数组有三个属性:input、index 和 lastIndex。 //Input 属性包含整个的被查找字符串。 //Index 属性包含了在整个被查找字符串中匹配的子字符串的位置。 //LastIndex 属性包含了最后一次匹配中最后一个字符的下一个位置。 for (var i=b.length-3; i>-3; i=i-3) c = ","+ b.substring(i, i+3) + c; //substring(start, end) 对象中指定位置的子字符串 return(a[1] + c.substr(1)) + a[3];//substr(start [, length ])从指定位置开始的指定长度的子字符串。}alert(formatNum("-12345678.1466"));alert(formatNum("12345678.123"));alert(formatNum("10000000000000000000000000000000000000000.0"));//--></script> Ext store无法得到后台传的数据 在opera浏览器中,如何在iframe页面调用父页面的JS函数。iframe的src页面是跨域页面 用div做的tab的问题??? 用JS可以让一个图片翻转吗? 分不够可以加~javascript 如何统计一个用户在一个网站点开了多少页面!可以实现吗 请教高手,如何在页面里弹出一个保存文件对话框? 关于日期的有效性 为什么啊?不明白啊!有人碰到过吗?无原无故页面就消失了。大家帮我看看 高手救命,在線等! 请问在netscape中如何指定新打开窗口的宽度和高度! 如何实现这样的效果? 下载文件而打开的新窗口,怎么可以在下载完成后自动关闭?
不过手册上说:toLocaleString 只用来显示结果给用户;不要在脚本中用来做基本计算,因为返回的结果是随机器不同而不同的。
????????
{
s += "";
if (!/^(\+|-)?\d+(\.\d+)?$/.test(s)) throw(new Error(-1, 'It isn\'t Number!'));
var a = s.match(/^(\+|-)?(\d[^\.]+)(\.\d+)?$/), b = a[2], c="";
for (var i=b.length-3; i>-3; i=i-3) c = ","+ b.substring(i, i+3) + c;
return(a[1] + c.substr(1) + a[3]);
}
alert(formatNum(-12345678.123));
alert(formatNum("12345678.123"));
alert(formatNum("10000000000000000000000000000000000000000"));
var a=document.form1.text1.value
if(a.indexOf(",")!=-1)
b=a.indexOf(",")
{
a=a.substr(0,b)+a.substr(b+1,a.length)
}
</script>
<!--
function formatNum(s) //将数字转换成三位逗号分隔的样式
{
s += "";
var reg1 = /^(\+|-)?(\d+)(\.\d+)?$/; //定义正则表达式 if (!reg1.test(s)) //判断s是否符合reg1的定义
throw(new Error(-1, 'It isn\'t Number!')); //抛出异常 var a = s.match(reg1), b = a[2], c=""; //定义a(a为一数组)
//match 方法返回的数组有三个属性:input、index 和 lastIndex。
//Input 属性包含整个的被查找字符串。
//Index 属性包含了在整个被查找字符串中匹配的子字符串的位置。
//LastIndex 属性包含了最后一次匹配中最后一个字符的下一个位置。
for (var i=b.length-3; i>-3; i=i-3)
c = ","+ b.substring(i, i+3) + c; //substring(start, end) 对象中指定位置的子字符串 return(a[1] + c.substr(1)) + a[3];//substr(start [, length ])从指定位置开始的指定长度的子字符串。
}
alert(formatNum("-12345678.1466"));
alert(formatNum("12345678.123"));
alert(formatNum("10000000000000000000000000000000000000000.0"));
//-->
</script>