Skip to main content
 首页 » 编程设计

c#之在C#中测试电话号码

2024年01月16日3傻小

我有一个奇怪的问题,我正在使用下面的代码测试电话号码,在测试中我的代码工作正常。该程序昨天上线,有人使用电话号码08720 123 456,我的代码失败。您能告诉我为什么为什么对0161 287 1234返回TRUE,对08720 123 456返回FALSE吗?

传真号码1:0161 287 1234 ---> IsNumber返回TRUE
传真号码2:08720 123 456 ---> IsNumber返回FALSE

static bool IsNumber(string value) 
        { 
            // Return true if this is a number. 
            int number1; 
            return int.TryParse(value, out number1); 
        } 
 
 bool testForFax = IsNumber(faxOrEmail); 
            if (testForFax == true) 
            { 
                backgroundWorker2.RunWorkerAsync(); //send fax 
            } 
            else 
            { 
                MessageBox.Show("Please enter a fax number."); 
            } 

请您参考如下方法:

int可以采用的值的范围是从负数2147483648到正数2147483647。

0161 287 1234在此范围内,08720 123 456不在此范围内。

您不应该以这种方式解析电话号码-从数学上讲,它不是数字(您可以以有意义的方式添加/减去电话号码吗?)。

您应该使用regular expression对其进行验证。