Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript函数上使用句点分隔符(ASP.net)_Javascript_Asp.net_String Formatting_Separator_Onkeyup - Fatal编程技术网

在Javascript函数上使用句点分隔符(ASP.net)

在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})+(?!

抱歉,如果复制了,但我真的对这些javascript感到困惑。 如果愿意,请帮助我

我有一个已经运行的javascript函数,该函数将添加带逗号的数千个分隔符:

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, "."); 
}