在Javascript函数上使用Period的数千个分隔符(ASP.net)

时间:2016-03-06 06:47:26

标签: javascript asp.net string-formatting separator onkeyup

很抱歉如果重复,但我真的很困惑这些javascript。 如果愿意,请帮助我。

我已经使用了这个javascript函数,这个函数将添加数千个逗号分隔符:

<student name="aaa">
    <subject id="abc">
        <assignment id="1">
            <name>ddd</name>
            <submission>12/2/1999</submission>
        </assignment>
        <assignment id="2">
            <name>ddd</name>
            <submission>12/2/1999</submission>
        </assignment>
    </subject>
    <subject id="hjd">
        <assignment id="1">
            <name>ddd</name>
            <submission>12/2/1999</submission>
        </assignment>
        <assignment id="2">
            <name>ggg</name>
            <submission>12/2/1999</submission>
        </assignment>
    </subject>
</student>

我在文本框中调用此函数,如下所示:

function addCommas(x) {
  //remove commas
  retVal = x ? parseFloat(x.replace(/,/g, '')) : 0;

  //apply formatting
  return retVal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); 
}

输出,如下所示(使用逗号分隔符):

  

60000234

但是我想要输出,看起来像这样(使用句点的分隔符):

  

60.000.234

请给我一个仍然使用这些Javascript函数的解决方案。感谢

2 个答案:

答案 0 :(得分:3)

我注意到我的代码在评论中出了什么问题。

试试这个,我很久以前就用过了。

function addCommas(x) {
 var retVal=x.toString().replace(/[^\d]/g,'');
  while(/(\d+)(\d{3})/.test(retVal)) {
   retVal=retVal.replace(/(\d+)(\d{3})/,'$1'+'.'+'$2');
 }
 return retVal;
}
Number <input type="text" onkeypress="this.value=addCommas(this.value);" onkeyup="this.value=addCommas(this.value);" />

我希望这能帮到你。

答案 1 :(得分:0)

function addCommas(x) {
    x = '' + x;
    //remove commas
    retVal = x ? parseFloat(x.replace(/,/g, '')) : 0;
    //apply formatting
    return retVal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); 
}

它仍然是你的功能,但变量x首先被转换为字符串。