一个 数字在文本框格式化的问题? 晕!直接赋值为123,456.12不行?<input onclick='value=123456.12' onblur='value="123,456.12"'> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script> function formatNumber(number,pattern) { var str = number.toString(); var strInt; var strFloat; var formatInt; var formatFloat; if(/\./g.test(pattern)) { formatInt = pattern.split('.')[0]; formatFloat = pattern.split('.')[1]; } else { formatInt = pattern; formatFloat = null; } if(/\./g.test(str)) { if(formatFloat!=null) { var tempFloat = Math.round(parseFloat('0.'+str.split('.')[1])*Math.pow(10,formatFloat.length))/Math.pow(10,formatFloat.length); strInt = (Math.floor(number)+Math.floor(tempFloat)).toString(); strFloat = /\./g.test(tempFloat.toString())?tempFloat.toString().split('.')[1]:'0'; } else { strInt = Math.round(number).toString(); strFloat = '0'; } } else { strInt = str; strFloat = '0'; } if(formatInt!=null) { var outputInt = ''; var zero = formatInt.match(/0*$/)[0].length; var comma = null; if(/,/g.test(formatInt)) { comma = formatInt.match(/,[^,]*/)[0].length-1; } var newReg = new RegExp('(\\d{'+comma+'})','g'); if(strInt.length<zero) { outputInt = new Array(zero+1).join('0')+strInt; outputInt = outputInt.substr(outputInt.length-zero,zero) } else { outputInt = strInt; } var outputInt = outputInt.substr(0,outputInt.length%comma)+outputInt.substring(outputInt.length%comma).replace(newReg,(comma!=null?',':'')+'$1') outputInt = outputInt.replace(/^,/,''); strInt = outputInt; } if(formatFloat!=null) { var outputFloat = ''; var zero = formatFloat.match(/^0*/)[0].length; if(strFloat.length<zero) { outputFloat = strFloat+new Array(zero+1).join('0'); //outputFloat = outputFloat.substring(0,formatFloat.length); var outputFloat1 = outputFloat.substring(0,zero); var outputFloat2 = outputFloat.substring(zero,formatFloat.length); outputFloat = outputFloat1+outputFloat2.replace(/0*$/,''); } else { outputFloat = strFloat.substring(0,formatFloat.length); } strFloat = outputFloat; } else { if(pattern!='' || (pattern=='' && strFloat=='0')) { strFloat = ''; } } return strInt+(strFloat==''?'':'.'+strFloat); }</script><input type="text" name="" onchange="this.value=formatNumber(this.value,'#,###.00')"> 是不是123456789.123变123,456,789.123<script>function changeit(form){ var tmp = form.number.value; var thepos = tmp.indexOf("."); var tmp1; var number1 = tmp.substring(0,thepos); var numberend = tmp.substring(++thepos,tmp.length); var number1Leng = number1.length; if(tmp.indexOf(".") == -1){ number1 = tmp; numberend = ""; } if(number1Leng<= 3){ tmp1 = number1; } else{ if(number1Leng%3==0){ var num = (number1Leng-number1Leng%3)/3-1; } else{ num = (number1Leng-number1Leng%3)/3; } var i; tmp1 = number1.substring(0,number1Leng%3); for(i = 0;i<num+1;i++){ tmp1 = tmp1 + "," + number1.substring((number1Leng%3 + i*3),(number1Leng%3 + (i+1)*3)); } if(tmp1.indexOf(",")==0){ tmp1 = tmp1.substring(1,tmp1.length); } if(tmp1.substring(tmp1.length-1,tmp1.length) == ","){ tmp1 = tmp1.substring(0,tmp1.length-1); } } tmp1 = tmp1 + "." + numberend; form.number.value = tmp1;}</script><form name= "csnd2"><input type= "text" name= "number" value= "" onchange= "javascript:changeit(this.form)"></form> if(tmp.indexOf(".") == -1){ number1 = tmp; numberend = "";}换到var number1Leng = number1.length;上面 JS如何设置一个table宽度不受父容器宽度影响 点击li列表改变背景色的问题 【分享】JS幻想 -- QQ音乐桌面歌词 求助:JQuery如何校验 验证码 请教firefox中层div的拖动问题 如何动态设定IFRAME的SRC? 刚学script 写了个页面 目的是通过点选单项框出现不同的表单,但好像效果不大好,节选了一下 希望有经验的朋友帮忙看一下下 如何让图片的alt或链接的title变得半透明。 单元格内容自动换行后,如何取得单元格的真正高度,或内容行数? 大家帮帮忙,json字符串转换成json对象的key值顺序问题 关于数据类型的问题! 如何将一个列表框隐藏于层下?
function formatNumber(number,pattern)
{
var str = number.toString();
var strInt;
var strFloat;
var formatInt;
var formatFloat;
if(/\./g.test(pattern))
{
formatInt = pattern.split('.')[0];
formatFloat = pattern.split('.')[1];
}
else
{
formatInt = pattern;
formatFloat = null;
} if(/\./g.test(str))
{
if(formatFloat!=null)
{
var tempFloat = Math.round(parseFloat('0.'+str.split('.')[1])*Math.pow(10,formatFloat.length))/Math.pow(10,formatFloat.length);
strInt = (Math.floor(number)+Math.floor(tempFloat)).toString();
strFloat = /\./g.test(tempFloat.toString())?tempFloat.toString().split('.')[1]:'0';
}
else
{
strInt = Math.round(number).toString();
strFloat = '0';
}
}
else
{
strInt = str;
strFloat = '0';
}
if(formatInt!=null)
{
var outputInt = '';
var zero = formatInt.match(/0*$/)[0].length;
var comma = null;
if(/,/g.test(formatInt))
{
comma = formatInt.match(/,[^,]*/)[0].length-1;
}
var newReg = new RegExp('(\\d{'+comma+'})','g'); if(strInt.length<zero)
{
outputInt = new Array(zero+1).join('0')+strInt;
outputInt = outputInt.substr(outputInt.length-zero,zero)
}
else
{
outputInt = strInt;
} var
outputInt = outputInt.substr(0,outputInt.length%comma)+outputInt.substring(outputInt.length%comma).replace(newReg,(comma!=null?',':'')+'$1')
outputInt = outputInt.replace(/^,/,''); strInt = outputInt;
} if(formatFloat!=null)
{
var outputFloat = '';
var zero = formatFloat.match(/^0*/)[0].length; if(strFloat.length<zero)
{
outputFloat = strFloat+new Array(zero+1).join('0');
//outputFloat = outputFloat.substring(0,formatFloat.length);
var outputFloat1 = outputFloat.substring(0,zero);
var outputFloat2 = outputFloat.substring(zero,formatFloat.length);
outputFloat = outputFloat1+outputFloat2.replace(/0*$/,'');
}
else
{
outputFloat = strFloat.substring(0,formatFloat.length);
} strFloat = outputFloat;
}
else
{
if(pattern!='' || (pattern=='' && strFloat=='0'))
{
strFloat = '';
}
} return strInt+(strFloat==''?'':'.'+strFloat);
}
</script>
<input type="text" name="" onchange="this.value=formatNumber(this.value,'#,###.00')">
<script>
function changeit(form){
var tmp = form.number.value;
var thepos = tmp.indexOf(".");
var tmp1;
var number1 = tmp.substring(0,thepos);
var numberend = tmp.substring(++thepos,tmp.length);
var number1Leng = number1.length;
if(tmp.indexOf(".") == -1){
number1 = tmp;
numberend = "";
}
if(number1Leng<= 3){
tmp1 = number1;
}
else{
if(number1Leng%3==0){
var num = (number1Leng-number1Leng%3)/3-1;
}
else{
num = (number1Leng-number1Leng%3)/3;
}
var i;
tmp1 = number1.substring(0,number1Leng%3);
for(i = 0;i<num+1;i++){
tmp1 = tmp1 + "," + number1.substring((number1Leng%3 + i*3),(number1Leng%3 + (i+1)*3));
}
if(tmp1.indexOf(",")==0){
tmp1 = tmp1.substring(1,tmp1.length);
}
if(tmp1.substring(tmp1.length-1,tmp1.length) == ","){
tmp1 = tmp1.substring(0,tmp1.length-1);
}
}
tmp1 = tmp1 + "." + numberend;
form.number.value = tmp1;
}
</script>
<form name= "csnd2">
<input type= "text" name= "number" value= "" onchange= "javascript:changeit(this.form)">
</form>
number1 = tmp;
numberend = "";
}
换到
var number1Leng = number1.length;
上面