Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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 正确显示逗号_Javascript - Fatal编程技术网

Javascript 正确显示逗号

Javascript 正确显示逗号,javascript,Javascript,如何在数字中添加逗号,目前我正在生成这样的输出1,2,3,4,5,6,7890-试图得到输出以下1234567890的结果-使用keyup可能会导致问题,请告知 numberWithCommas : function () { var goal = $("#foo"); goal.val(goal.val().toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); }, 更新:我发现replace(/\B(?=(\d{3})+(?!\d))

如何在数字中添加逗号,目前我正在生成这样的输出1,2,3,4,5,6,7890-试图得到输出以下1234567890的结果-使用keyup可能会导致问题,请告知

numberWithCommas : function () {
  var goal = $("#foo");
  goal.val(goal.val().toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
},

更新:我发现
replace(/\B(?=(\d{3})+(?!\d))/g,,)修复了逗号过多的问题

删除所有当前的逗号,然后在适当的位置插入新的逗号:

numberWithCommas : function () {
  $("#foo").val(function(_,val) {
    return val.replace(/\,/g,'').replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  });
},

为什么要执行
toString()
?它已经是一个字符串。也许这个答案:可以帮助。你也可以看看:谁能给我解释一下这个regexp?你的小提琴坏了。@Guilherme-它对我来说工作得很好,输入显示
1234567890
@adeneo添加正则表达式的工作原理不是很好吗appreciated@HamZa-我他妈的怎么知道它是怎么工作的,我刚从OP的问题中了解到,要让它工作,你必须先去掉逗号,由于正则表达式在三位数的组之间插入逗号(这就是三位数的意思),并且逗号仍然存在,所以没有三位数的组。如果你想知道正则表达式是如何工作的,只需测试一下->我没有生气,我确实对正则表达式的功能以及它是如何构建的有一个大致的概念,但我并没有仔细研究它,因为它一开始不是我的,我只是注意到三位数的组,并意识到只有先删除现有的逗号,它才会工作。