很抱歉如果重复,但我真的很困惑这些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函数的解决方案。感谢
答案 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首先被转换为字符串。