用正则即可解决
1. /^\d+$/.test(str)
2. 方法有些笨
<script language="javascript"><!--
var n = 1235456346;
var s = String(n);
var str = "";
while(s.length>0){
str = ","+s.substr(s.length-3) + str;
s = s.substr(0, s.length-3);
}
str = str.substr(1);
alert(str);
//-->
</script>
1. /^\d+$/.test(str)
2. 方法有些笨
<script language="javascript"><!--
var n = 1235456346;
var s = String(n);
var str = "";
while(s.length>0){
str = ","+s.substr(s.length-3) + str;
s = s.substr(0, s.length-3);
}
str = str.substr(1);
alert(str);
//-->
</script>
<script language="javascript"><!--
var s = "1235456346";
while(/^\d{4}/.test(s))s=s.replace(/(\d{3})($|,)/, ",$1$2");
alert(s);
//-->
</script>
<input onkeypress="return event.keyCode>=48&&event.keyCode<=57"
onpaste="return !/\D/.test(clipboardData.getData('text'))"
ondragenter="return false" style="ime-mode:disabled">2.
function formatNum(num, digit) //将数字转换成三位逗号分隔的样式
{
if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){alert("wrong!"); return num;}
var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
var re = new RegExp().compile("(\\d)(\\d{3})(,|$)");
while(re.test(b)) b = b.replace(re, "$1,$2$3");
if (c && digit && new RegExp("^.(\\d{"+ digit +"})(\\d)").test(c)){
if (RegExp.$2>4) c = (parseFloat(RegExp.$1)+1)/Math.pow(10, digit);
else c = "."+ RegExp.$1;}
return a +""+ b +""+ (c+"").substr((c+"").indexOf("."));
}
alert(formatNum(-12345678.005, 2));
alert(formatNum("12345678.1256246", 6));
alert(formatNum("10000000000000000000000000000000000000000"));