C# 判斷字符串是否為數字


public class NumberUtils { public static bool IsNumber(string strNumber) { Regex objTwoDotPattern = new Regex(@"[0-9]+[.][0-9]+[.][0-9]+"); Regex objTwoMinusPattern = new Regex(@"[0-9]+[-][0-9]+[-][0-9]+"); string strValidRealPattern = @"^[+-]?\d*[.]?\d+$"; string strValidIntegerPattern = @"^[+-]?\d+$"; Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")"); return !objTwoDotPattern.IsMatch(strNumber) && !objTwoMinusPattern.IsMatch(strNumber) && objNumberPattern.IsMatch(strNumber); } public static bool IsInt(string value) { return Regex.IsMatch(value, @"^[+-]?\d+$"); } public static bool IsNumberic(string value) { return Regex.IsMatch(value, @"^[+-]?\d*[.]?\d+$"); } } 測試: [TestClass()] public class NumberUtilsTests { [TestMethod()] public void IsNumberTest() { string s = "1"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "12"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "123"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "1234"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "12345"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "123456"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "1234567"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "-"; Assert.IsFalse(NumberUtils.IsNumber(s)); s = "+"; Assert.IsFalse(NumberUtils.IsNumber(s)); s = "-0"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "-1"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "-100"; Assert.IsTrue(NumberUtils.IsNumber(s)); Assert.IsTrue(NumberUtils.IsNumber(s)); s = "-.12"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "+.12"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "-12.12"; Assert.IsTrue(NumberUtils.IsNumber(s)); s = "+12.12"; Assert.IsTrue(NumberUtils.IsNumber(s)); } [TestMethod()] public void IsIntTest() { string s = "1"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "12"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "123"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "1234"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "12345"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "123456"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "1234567"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "-"; Assert.IsFalse(NumberUtils.IsInt(s)); s = "+"; Assert.IsFalse(NumberUtils.IsInt(s)); s = "-0"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "-1"; Assert.IsTrue(NumberUtils.IsInt(s)); s = "-100"; Assert.IsTrue(NumberUtils.IsInt(s)); } [TestMethod()] public void IsNumbericTest() { string s = "1"; Assert.IsTrue(NumberUtils.IsNumberic(s)); s = "12"; Assert.IsTrue(NumberUtils.IsNumberic(s)); s = "-.12"; Assert.IsTrue(NumberUtils.IsNumberic(s)); s = "+.12"; Assert.IsTrue(NumberUtils.IsNumberic(s)); s = "-12.12"; Assert.IsTrue(NumberUtils.IsNumberic(s)); s = "+12.12"; Assert.IsTrue(NumberUtils.IsNumberic(s)); } }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM