【问题标题】:How to remove numbers after a comma?如何删除逗号后的数字?
【发布时间】:2020-09-30 05:44:39
【问题描述】:

我有这样的字符串:300.123,25,在逗号之后我想总是有一个数字。

预期结果:300.123,2

如果字符串没有逗号,另一个问题是自动连接 ,0

300.123  ->  300.123,0  

使用来自输入的值:

value = value.toString().replace(/[^0-9\,]/g, "")
value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ".")

我删除了字母和其他符号。我试图检查逗号后是否有数字:'(,\d)\d*$'。但它不起作用。

【问题讨论】:

  • 你能分享一下你试过的代码吗?

标签: javascript string number-formatting


【解决方案1】:
const value = `300.123,25`;
const parts = value.split(",");
const result = `${parts[0]},${parts[1] ? (parts[1][0] || "0") : "0"}`;
console.log(result);

【讨论】:

  • 每次更改输入时,我的光标都会放在字符串的末尾。你能告诉我为什么吗?
  • 这与上述问题无关。但是:这取决于您如何呈现输入中的值。你如何呈现 HTML 输入?
  • 带有反应钩子。非常感谢!
  • 好吧,你需要有一个状态作为你的输入值。您是否使用useState 作为您的输入值?
  • 300.123 => split(",").length === 1 => TypeError: Cannot read property '0' of undefined
【解决方案2】:

const toFixed = (sv) => sv.replace(/(?<=\.).+/, (x) => Number.parseFloat(x.replace(',', '.')).toFixed(1).replace('.', ','))
console.log(
  toFixed('300.123,25'),
  toFixed('300.123')
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多