从数字中删除句点

本文关键字:句点 删除 数字 | 更新日期: 2023-09-27 18:34:35

嗨,我有一个正则表达式,它接受一个数字并从中删除所有逗号和其他字符。

     num = num.toString().replace(/'$|',/g, '');

我需要添加到这个正则表达式中,以便它也从中删除了点。例如 23.00,它应该只返回 23。我尝试了这个("//.",/''$|'',/g,''(,但效果不佳。

请让我知道如何解决它。谢谢

从数字中删除句点

为了匹配点(这是一个特殊的字符(,请使用反斜杠来转义它。尝试类似操作:

 num = num.toString().replace(/'$'.|',/g, '');

更新

根据你最后一条评论,你不希望句号后面的文本。如果它真的是一个数字Math.Floor(num).ToString()应该做这项工作。

如果它不必是数字,并且您仍然想使用正则表达式:

 num = num.toString().replace(/'..*/, '');

如果您不致力于正则表达式:

 num = int.Parse(num.ToString().Split('.')[0]); // In case num is a number, otherwise, int.Parse and ToString are not needed

为什么不这样做,并避免正则表达式? num.Floor().ToString()

从 MSDN 来看,.ToString("F0", CultureInfo.InvariantCulture) 需要像 18934.1879 这样的双精度并输出 18934。

你甚至不需要正则表达式:

string num = myNumber.ToString().Replace("$","").Replace(".","").Replace(",","");

这是假设您希望一个数字,例如"123.45"是"12345"而不是"123">

如果您希望"123.45"为"123",请改用以下内容:

string num = String.Format("{0:#.##}", myNumber).Replace(",","");
num = num.replace('.', '')

如果您坚持使用正则表达式,请在句点之前放置一个 ''。这使得句点成为文字而不是正则表达式模式。