嗨,我有一个正则表达式,它接受一个数字并从中删除所有逗号和其他字符。
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('.', '')
如果您坚持使用正则表达式,请在句点前放置一个 \。这使得句点成为文字而不是正则表达式模式。