C#判断字符串是否数字字符串
      C#候,有的候我需要判断一个字符串是否是数字字符串,我可以通以下两方法来实现
方法一】:使用 try{} catch{} 句。
      可以在try试图string型的字符串转换为int,如果字符串不是数字字符串会抛出异常,这时catch中就能捕异常。一旦发现异常,不是数字字符串。
可以以下三方式将string转换为int型。
1  int.Parse(string);
2  Convert.ToInt16(string);  //当数字字符串的位数大于4使用Convert.ToInt32()
3  Convert.ToInt32(string);
添加一个文本框TextBox1,和一个按Button1,当点钮时,判断文本框中的内容是否数字字符串,是的话则输转换后的数
protected void Button1_Click(object sender, EventArgs e)
{
        string message = TextBox1.Text.Trim();
        int result;
        if(isNumberic(message,out result))
        {
            string tt="<script>alert('匹配成功,转换后的整数"+result+"')</script>";
            Page.ClientScript.RegisterStartupScript(this.GetType(), "", tt);
        }
        else
            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('匹配失')</script>");
}
protected bool isNumberic(string message,out int result)
{
      //判断是否整数字符串
      //是的话则将其转换为数字并将其设为out型的、返回true, 则为false
        result = -1;  //result 义为out 用来
        try
        {
          //当数字字符串的是少于4,以下三都可以转换,任
          //如果位数超4请选Convert.ToInt32() int.Parse()

          //result = int.Parse(message);
          //result = Convert.ToInt16(message);
            result = Convert.ToInt32(message);   
            return true;
        }
        catch
        {
            return false;
        }
}
上述方法可以将intdouble,如 double.Parse()这样就可以判断是否浮点数字符串
方法二】:通表达式来判断。
      用正表达式来验证字符串是否数字字符串。我要用到RegexisMatch()方法。该类System.Text.RegularExpressions; 您可以通using System.Text.RegularExpressions;入命名空访问Regex。也可以直接通System.Text.RegularExpressions.Regex 访问
protected bool isNumberic(string message,out int result)
{
        System.Text.RegularExpressions.Regex rex=
        new System.Text.RegularExpressions.Regex(@"^\d+$");
        result = -1;
        if (rex.IsMatch(message))
        {
            result = int.Parse(message);
            return true;
        }
        else
            return false;
}
表达式判断是否匹配,不可以用来做简单的判断匹配,可以行精确的匹配,如判断是否是六位的数字字符串,Email匹配等。正表达式是一很好的方法。
protected void Button1_Click(object sender, EventArgs e)
{
        string message = TextBox1.Text.Trim();
        isNumeric(message); //判断字符串是否5整数字符串
}
protected void isNumeric(string message)
{
      if (message != "" && Regex.IsMatch(message, @"^\d{5}$"))
      {
          //成功
          Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('匹配通!确是五位的整数字符串')</script>");
      }
      else
          //
          Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('匹配失')</script>");
}

//匹配
匹配中文字符的正表达式: [\u4e00-\u9fa5]
匹配双字字符(包括字在内)[^\x00-\xff]
匹配空行的正表达式:\n[\s| ]*\r
匹配HTML标记的正表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正表达式:(^\s*)|(\s*$)(像vbscripttrim函数)
匹配Email地址的正表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
html表单只能输入数字匹配网址URL的正表达式:([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
以下是例子:
利用正表达式限制网里的文本框入内容:
用正表达式限制只能入中文:onkeyup="place(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^\u4E00-\u9FA5]/g,''))"
1.用正表达式限制只能入全角字符: onkeyup="place(/[^\uFF00-\uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^\uFF0
0-\uFFFF]/g,''))"
2.用正表达式限制只能入数字:onkeyup="place(/[^\d]/g,'')
"onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^\d]/g,''))"
3.用正表达式限制只能入数字和英文:onkeyup="place(/[\W]/g,'')
"onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^\d]/g,''))"