0

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

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

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

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

4

5 回答 5

1

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

 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
于 2013-10-09T22:43:37.420 回答
1

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

于 2013-10-09T22:49:45.440 回答
1

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

于 2013-10-09T22:50:29.143 回答
1

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

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

这是假设您想要一个数字,例如“123.45”是“12345”而不是“123”

如果您希望“123.45”为“123”,请改用:

string num = String.Format("{0:#.##}", myNumber).Replace(",","");
于 2013-10-09T22:53:59.670 回答
0
num = num.replace('.', '')

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

于 2013-10-09T23:01:37.540 回答