您好我有一个带有数字的正则表达式,并从中删除所有逗号和其他字符。
num = num.toString().replace(/\$|\,/g, '');
我需要添加到这个regexpression所以它也删除了它的点。例如23.00它应该仅返回23。我试过这个(“//.",/\$|\,/ g,''),但效果不好。
请告诉我如何修复它。 感谢
答案 0 :(得分: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
答案 1 :(得分:1)
为什么不这样做,并避免正则表达式? num.Floor().ToString()
答案 2 :(得分:1)
从MSDN看起来.ToString("F0", CultureInfo.InvariantCulture)
会像18934.1879那样加倍,输出18934。
答案 3 :(得分:1)
您甚至不需要RegEx:
string num = myNumber.ToString().Replace("$","").Replace(".","").Replace(",","");
这假设您想要一个数字,例如“123.45”为“12345”而不是“123”
如果您希望“123.45”为“123”,请改用:
string num = String.Format("{0:#.##}", myNumber).Replace(",","");
答案 4 :(得分:0)
num = num.replace('.', '')
如果您坚持使用正则表达式,请在句点之前放置\。这使得句点成为文字而非正则表达式。