C# 判斷是否為數字
參考: http://www.dotblogs.com.tw/yc421206/archive/2008/11/20/6029.aspx
在VB有 IsNumeric函數來判斷字串是否為數字,但在C#確沒有,這有點美中不足,不過還是可以自己寫邏輯來判斷。
常使用的方法,記下來先~
引用VB,這樣也行,對於會VB的捧油們是一大福音 //將Microsoft.VisualBasic加入參考 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.VisualBasic;引用命名空間 namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Boolean b=Information.IsNumeric("ddddd"); MessageBox.Show(b.ToString()); } } }
利用TryParse方法
private void button2_Click(object sender, EventArgs e) { int n; if (int.TryParse(textBox1.Text, out n)) { MessageBox.Show("數字"); } else { MessageBox.Show("非數字"); } }
利用迴圈一個字元一個字元分析
private bool isNumber(string s) { int Flag = 0; char[] str = s.ToCharArray(); for (int i = 0; i < str.Length; i++) { if (Char.IsNumber(str[i])) { Flag++; } else { Flag = -1; break; } } if ( Flag > 0 ) { return true; } else { return false; } }
利用正則表達式
using System.Text.RegularExpressions;//導入命名空間(正則表達式) private void button1_Click(object sender, EventArgs e) { Boolean isN = IsNumeric(textBox1.Text); MessageBox.Show(isN.ToString(), "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } //定義一個函數,作用:判斷strNumber是否為數字,是數字返回True,不是數字返回False public bool IsNumeric(String strNumber) { Regex NumberPattern=new Regex("[^0-9.-]"); return !NumberPattern.IsMatch(strNumber); }
幾個正則表達式的例子:
"^\\d+$" //非負整數(正整數 + 0) "^[0-9]*[1-9][0-9]*$" //正整數 "^((-\\d+)|(0+))$" //非正整數(負整數 + 0) "^-[0-9]*[1-9][0-9]*$" //負整數 "^-?\\d+$" //整數 "^\\d+(\\.\\d+)?$" //非負浮點數(正浮點數 + 0) "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點數 "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮點數(負浮點數 + 0) "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負浮點數 "^(-?\\d+)(\\.\\d+)?$" //浮點數 "^[A-Za-z]+$" //由26個英文字母組成的字符串 "^[A-Z]+$" //由26個英文字母的大寫組成的字符串 "^[a-z]+$" //由26個英文字母的小寫組成的字符串 "^[A-Za-z0-9]+$" //由數字和26個英文字母組成的字符串 "^\\w+$" //由數字、26個英文字母或者下劃線組成的字符串 "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$" //email地址 "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$" //url
浙公网安备 33010602011771号