我需要对特定字符串进行数字验证。问题在于,这个字符串可能是一个超出C#可以表示的任何数字类型的大数,因此我不能使用TryParse函数,因为它们只能提供关于是否可以转换为这些类型的信息。
应该考虑到-/+、分隔符和当前文化设置。
我找到了一些使用正则表达式的解决方案,但它们都缺少一些细节。而且我不擅长使用正则表达式。
我需要对特定字符串进行数字验证。问题在于,这个字符串可能是一个超出C#可以表示的任何数字类型的大数,因此我不能使用TryParse函数,因为它们只能提供关于是否可以转换为这些类型的信息。
应该考虑到-/+、分隔符和当前文化设置。
我找到了一些使用正则表达式的解决方案,但它们都缺少一些细节。而且我不擅长使用正则表达式。
如果您正在使用C# 4.0且数字为整数,可以使用BigInteger
。
表示任意大小的有符号整数。
Parse
和TryParse
都将使用当前的区域设置。它们还有一些重载,特别允许您传递一个IFormatProvider
,例如CultureInfo
。 - OdedIFormatProver
,可以做您需要的事情。BigInteger
的大小是无限的,所以您需要的数字不可能比BigInteger
可以处理的更大。看一下http://www.regexlib.com/Search.aspx?k=numeric&c=-1&m=5&ps=20。http://regexlib.com/ 包含许多正则表达式的示例,肯定有一个适合您的需求。