请问在c#中如何实现判断一个字符串是否为数字,是字符串,不是一个字符啊,char.isnumber不能判断一个字符串.

时间:2023-01-04 14:18:56
请问在c#中如何实现判断一个字符串是否为数字,是字符串,不是一个字符啊,char.isnumber不能判断一个字符串.

24 个解决方案

#1


判断int.Parse() ;是否有异常,没有异常则返回true,否则不是数字

#2


using System;
using System.Text.RegularExpressions;

public bool IsNumber(String strNumber)
{
Regex objNotNumberPattern=new Regex("[^0-9.-]");
Regex objTwoDotPattern=new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern=new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern="^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern="^([-]|[0-9])[0-9]*$";
Regex objNumberPattern =new Regex("(" + strValidRealPattern +")|(" + strValidIntegerPattern + ")");

return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}

#3


楼上很全啊,不过一般只用最后一个就可以了。否则,反而把不是数字的也判为数字了。呵呵

#4


lovefootball(蟑螂)
完全正確

#5


一个是正则表达式就是二楼的
一个使用javascript在客户端就可以进行判断:
function isNumberString (InString,RefString)
{
if(InString.length==0) return (true);
for (Count=0; Count < InString.length; Count++)
{
TempChar= InString.substring (Count, Count+1);
if (RefString.indexOf (TempChar, 0)==-1)
return (false);
}
return (true);
}

function CheckValue(e)
{
var string1
if(isNumberString(document.Form1.elements[e].value,"1234567890.-")!=1)
{
alert("\请输入数值!");
return false;
}
return true
}
三、使用
try
{
}
catch(System.Exception exp)
{
}

#6


正则表达式

#7


public bool ValidateStr()
{
  string str;
  char[] str1 = str.ToCharArray();
  for (int i = 0; i < str.Length; i++)
   {
     if (!char.IsNumber(str1[i])
       {
 return false;
       }
   }

return true;
}

#8


添加Microsoft Visual Basic.net Runtime的引用就可以用vb的函数了
Microsoft.VisualBasic.Information.IsNumeric(s);

#9


来晚了.正则表达试

#10


添加Microsoft Visual Basic.net Runtime的引用就可以用vb的函数了
USING Microsoft.VisualBasic;

Microsoft.VisualBasic.Information.IsNumeric(s);

#11


pupo(泡泡) 用的Vb.net的是可以的.返回的是一個布爾值.
這種問題通常用正則表達式比較好些.vb.net中 
dim obj as object
obj=txt.text.trim
if isnumeric(obj)=false then
   page.registerstartupscript("","<script>alert('不是數字')</script>")
end if

#12


我们为什么不用微软提供的Microsoft.VisualBasic.IsNumeric(obj)函数呢?在C#中不能直接调用Microsoft.VisualBasic命名空间下的函数,但是可以考虑建一个VB.NET项目,然后在C#中引用它。方法如下:
1、建一个VB.NET项目,并添加一个名为Validator的验证函数类。

Namespace VBUtilitiesNamespace VBUtilities
    Public Class ValidatorClass Validator
        Public Shared Function IsNumeric()Function IsNumeric(ByVal obj As Object) As Boolean
            Return Microsoft.VisualBasic.IsNumeric(obj)
        End Function
    End Class
End Namespace

2、在需要用到该函数的C#项目中引用该程序集。用Validator.IsNumeric(obj)的方法调用就可以了。

  利用Microsoft.VisualBasic命名空间下的函数,我们还可以实现更多的验证功能,比如验证是否是日期类型(用IsDate)。这样要省掉不少麻烦去自己编写。还有别的方法吗?拿出来一起分享一些吧!

呵呵,这是引用了esshs的原话,原文在:http://dev.csdn.net/article/76/76216.shtm
大家都可以去看看!!

#13


正则最方便
几句就搞顶

#14


mk

#15


C#中是可以直接用vb.net的函数的,只要添加对Microsoft Visual Basic.net Runtime的引用就可以,
在VB.Net中提供了很多成熟的、有用的函数,为什么不直接用,还自己去编写。

#16


Visual Basic

很多函数非常方便

#17


mark

#18


正则表达式

#19


System.Convert.ToDouble();
System.Convert.ToChar();
两个方法判断

#20


二楼正解,用正则表达式

#21


isnumber函数

#22


也可以考虑判断ASCII码。

#23


haha,有时候用用违禁的算法也是很简单的啊.

bool isnumber(string bs1)
{
  try
  {
    Double bi1=System.Convert.ToDouble(bs1); 

  }
  catch
  {
    return false;
  }
  return true;

}

#24


判断数字:
try
{
int testValue = int.Parse("你的字符串");
}
catch
{
MessageBox.Show("不是数字");
}
判断字符串长度:
         int length = "42141".Length;

#1


判断int.Parse() ;是否有异常,没有异常则返回true,否则不是数字

#2


using System;
using System.Text.RegularExpressions;

public bool IsNumber(String strNumber)
{
Regex objNotNumberPattern=new Regex("[^0-9.-]");
Regex objTwoDotPattern=new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern=new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern="^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern="^([-]|[0-9])[0-9]*$";
Regex objNumberPattern =new Regex("(" + strValidRealPattern +")|(" + strValidIntegerPattern + ")");

return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}

#3


楼上很全啊,不过一般只用最后一个就可以了。否则,反而把不是数字的也判为数字了。呵呵

#4


lovefootball(蟑螂)
完全正確

#5


一个是正则表达式就是二楼的
一个使用javascript在客户端就可以进行判断:
function isNumberString (InString,RefString)
{
if(InString.length==0) return (true);
for (Count=0; Count < InString.length; Count++)
{
TempChar= InString.substring (Count, Count+1);
if (RefString.indexOf (TempChar, 0)==-1)
return (false);
}
return (true);
}

function CheckValue(e)
{
var string1
if(isNumberString(document.Form1.elements[e].value,"1234567890.-")!=1)
{
alert("\请输入数值!");
return false;
}
return true
}
三、使用
try
{
}
catch(System.Exception exp)
{
}

#6


正则表达式

#7


public bool ValidateStr()
{
  string str;
  char[] str1 = str.ToCharArray();
  for (int i = 0; i < str.Length; i++)
   {
     if (!char.IsNumber(str1[i])
       {
 return false;
       }
   }

return true;
}

#8


添加Microsoft Visual Basic.net Runtime的引用就可以用vb的函数了
Microsoft.VisualBasic.Information.IsNumeric(s);

#9


来晚了.正则表达试

#10


添加Microsoft Visual Basic.net Runtime的引用就可以用vb的函数了
USING Microsoft.VisualBasic;

Microsoft.VisualBasic.Information.IsNumeric(s);

#11


pupo(泡泡) 用的Vb.net的是可以的.返回的是一個布爾值.
這種問題通常用正則表達式比較好些.vb.net中 
dim obj as object
obj=txt.text.trim
if isnumeric(obj)=false then
   page.registerstartupscript("","<script>alert('不是數字')</script>")
end if

#12


我们为什么不用微软提供的Microsoft.VisualBasic.IsNumeric(obj)函数呢?在C#中不能直接调用Microsoft.VisualBasic命名空间下的函数,但是可以考虑建一个VB.NET项目,然后在C#中引用它。方法如下:
1、建一个VB.NET项目,并添加一个名为Validator的验证函数类。

Namespace VBUtilitiesNamespace VBUtilities
    Public Class ValidatorClass Validator
        Public Shared Function IsNumeric()Function IsNumeric(ByVal obj As Object) As Boolean
            Return Microsoft.VisualBasic.IsNumeric(obj)
        End Function
    End Class
End Namespace

2、在需要用到该函数的C#项目中引用该程序集。用Validator.IsNumeric(obj)的方法调用就可以了。

  利用Microsoft.VisualBasic命名空间下的函数,我们还可以实现更多的验证功能,比如验证是否是日期类型(用IsDate)。这样要省掉不少麻烦去自己编写。还有别的方法吗?拿出来一起分享一些吧!

呵呵,这是引用了esshs的原话,原文在:http://dev.csdn.net/article/76/76216.shtm
大家都可以去看看!!

#13


正则最方便
几句就搞顶

#14


mk

#15


C#中是可以直接用vb.net的函数的,只要添加对Microsoft Visual Basic.net Runtime的引用就可以,
在VB.Net中提供了很多成熟的、有用的函数,为什么不直接用,还自己去编写。

#16


Visual Basic

很多函数非常方便

#17


mark

#18


正则表达式

#19


System.Convert.ToDouble();
System.Convert.ToChar();
两个方法判断

#20


二楼正解,用正则表达式

#21


isnumber函数

#22


也可以考虑判断ASCII码。

#23


haha,有时候用用违禁的算法也是很简单的啊.

bool isnumber(string bs1)
{
  try
  {
    Double bi1=System.Convert.ToDouble(bs1); 

  }
  catch
  {
    return false;
  }
  return true;

}

#24


判断数字:
try
{
int testValue = int.Parse("你的字符串");
}
catch
{
MessageBox.Show("不是数字");
}
判断字符串长度:
         int length = "42141".Length;