在Javascript函数上使用句点分隔符(ASP.net)
抱歉,如果复制了,但我真的对这些javascript感到困惑。 如果愿意,请帮助我 我有一个已经运行的javascript函数,该函数将添加带逗号的数千个分隔符:在Javascript函数上使用句点分隔符(ASP.net),javascript,asp.net,string-formatting,separator,onkeyup,Javascript,Asp.net,String Formatting,Separator,Onkeyup,抱歉,如果复制了,但我真的对这些javascript感到困惑。 如果愿意,请帮助我 我有一个已经运行的javascript函数,该函数将添加带逗号的数千个分隔符: function addCommas(x) { //remove commas retVal = x ? parseFloat(x.replace(/,/g, '')) : 0; //apply formatting return retVal.toString().replace(/\B(?=(\d{3})+(?!
function addCommas(x) {
//remove commas
retVal = x ? parseFloat(x.replace(/,/g, '')) : 0;
//apply formatting
return retVal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}
我在文本框中调用这个函数,如下所示:
Number Format <asp:TextBox ID="txtPrice" runat="server" onkeyup="this.value=addCommas(this.value);"></asp:TextBox>
数字格式
输出如下所示(使用逗号的分隔符):
60000234
但我想要输出,如下所示(分隔符使用句点):
60.000.234
请给我一个仍然使用这些Javascript函数的解决方案。谢谢我在评论中注意到了我的代码中的错误 试试这个,我很久以前就用过了
函数添加逗号(x){
var retVal=x.toString().replace(/[^\d]/g',);
while(/(\d+)(\d{3})/.test(retVal)){
retVal=retVal.replace(/(\d+)(\d{3})/,'$1'+'.+'$2');
}
返回返回;
}
Number
我在评论中注意到了我的代码中的错误
试试这个,我很久以前就用过了
函数添加逗号(x){
var retVal=x.toString().replace(/[^\d]/g',);
while(/(\d+)(\d{3})/.test(retVal)){
retVal=retVal.replace(/(\d+)(\d{3})/,'$1'+'.+'$2');
}
返回返回;
}
编号
它仍然是您的函数,但变量x首先转换为字符串
它仍然是您的函数,但变量x首先被转换为字符串。尝试以下操作:
函数addCommas(x){var retVal=x.toString().replace(/[^\d]/g',).replace(/(.{3})/g,'$1');return retVal;}
。。。它将忽略除数字外的所有内容,并在每3个位置插入点。当然,像onkeyup
在文本框中添加onkeypress
@nelek,但当字符到达字符串句点(.)时,函数会忽略我按backspace键。还有句点不正确,例如,当我键入8个字符的数字“60000234”时,它将变成“600.002.34”。请尝试以下操作:函数addCommas(x){var retVal=x.toString().replace(/[^\d]/g',).replace(/(.3})/g,$1.);return retVal;}
。。。它将忽略除数字外的所有内容,并在每3个位置插入点。当然,像onkeyup
在文本框中添加onkeypress
@nelek,但当字符到达字符串句点(.)时,函数会忽略我按backspace键。而且句号也不正确,例如当我键入8个字符的数字“60000234”时,它将变成“600.002.34”。
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, ".");
}