下面是一段将数字千位分割的JS
function formatNumber(s){
alert(s);
        if(/[^0-9\.]/.test(s)) return "invalid value";
        alert(s);
        s=s.replace(/^(\d*)$/,"$1.");
        
        s=(s+"00").replace(/(\d*\.\d\d)\d*/,"$1");
        s=s.replace(".",",");
        var re=/(\d)(\d{3},)/;
        while(re.test(s))
                s=s.replace(re,"$1,$2");
        s=s.replace(/,(\d\d)$/,".$1");
        return  s.replace(/^\./,"0.")
        }
它会默认保留2位小数,我现在只需要分割整数,有牛人会改吗???

解决方案 »

  1.   

    那你在调用formatNumber之前处理一下数字不就行了吗?
    比如:
    123456.23,你就处理成123456,然后传给他
    123456.53,你就处理成123457,然后传给他
      

  2.   

    不能处理的,我是在TEXT中一输入值就触发事件的,别的TEXT也会触发。所以只能改JS,望牛人帮忙修改
      

  3.   

    在formatNumber函数return前处理一下就可以了
      

  4.   


    function addComma(obj) {
    var len;
    var index;
    var flag = "";
    var resultStr = "";
    var element = event.srcElement;
    var str = obj; str = delComma(str);
    if (isNaN(str)) {
    return false;
    }

    str = Number(str);

    str = str+"";
    if(str == "0"){
    str = "";
    }
     
    len=str.length;
    index = str.indexOf(".");
     
    if (index != -1) {
    resultStr = str.substring(index, len);
    str = str.substring(0, index);
    }
     
    len=str.length;
    if (str.indexOf('-') == 0 || str.indexOf('+') == 0) {
    flag = str.substr(0,1);
    str = str.substr(1,len);
    len--;
    }
     
    while (len > 3) {
    resultStr = "," + str.substr(len - 3, 3) + resultStr;
    len = len - 3;
    }
    resultStr = flag + str.substr(0, len) + resultStr;
    element.value = resultStr;
    return resultStr;
    }function delComma(val) {
    var str = val;
    var element = event.srcElement;
    if(isNaN(str)){
    str = element.value;
    }
    while (str.indexOf(",") != -1) {
    str = str.replace(",", "");  
    }
    element.value = str;
    return str;
    }不会改就用这个