Reference:http://www.dotblogs.com.tw/yc421206/archive/2008/11/20/6029.aspx
在VB有 IsNumeric函數來判斷字串是否為數字,但在C#確沒有,這有點美中不足,不過還是可以自己寫邏輯來判斷。
常使用的方法,記下來先~
引用VB,這樣也行,對於會VB的捧油們是一大福音
03 | using System.Collections.Generic; |
04 | using System.ComponentModel; |
08 | using System.Windows.Forms; |
09 | using Microsoft.VisualBasic;引用命名空間 |
10 | namespace WindowsApplication1 |
12 | public partial class Form1 : Form |
16 | InitializeComponent(); |
18 | private void button1_Click( object sender, EventArgs e) |
20 | Boolean b=Information.IsNumeric( "ddddd" ); |
21 | MessageBox.Show(b.ToString()); |
利用TryParse方法
01 | private void button2_Click( object sender, EventArgs e) |
04 | if ( int .TryParse(textBox1.Text, out n)) |
06 | MessageBox.Show( "數字" ); |
10 | MessageBox.Show( "非數字" ); |
利用迴圈一個字元一個字元分析
01 | private bool isNumber( string s) |
04 | char [] str = s.ToCharArray(); |
05 | for ( int i = 0; i < str.Length; i++) |
07 | if (Char.IsNumber(str[i])) |
利用正則表達式
01 | using System.Text.RegularExpressions; |
02 | private void button1_Click( object sender, EventArgs e) |
04 | Boolean isN = IsNumeric(textBox1.Text); |
05 | MessageBox.Show(isN.ToString(), "信息提示" , MessageBoxButtons.OK, MessageBoxIcon.Information); |
09 | public bool IsNumeric(String strNumber) |
11 | Regex NumberPattern= new Regex( "[^0-9.-]" ); |
12 | return !NumberPattern.IsMatch(strNumber); |
幾個正則表達式的例子:
07 | "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" |
09 | "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" |
10 | "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" |
18 | "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$" |
19 | "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$" //url |
沒有留言:
張貼留言