看了李威兄弟寫的正則表達式,我在網上找了些東西,比如説第一次作業中要求判斷數字的正則表達式可以寫成 "^[-]?(\d+\.?\d*|\.\d+)$" 真的比較方便,怪不得正則表達式被稱爲讓程序員不會失業的十大技術。在第三次作業中,我把對每個控件輸入内容的判斷也基本上用到了正則表達式比如説判斷2到10的用戶名我用的是"^(\w{2,10})$",判斷輸入的金額為加上$后還要有3位小數時用"^\$(\d*\.\d{3})$"。當然也有一些問題,比如説時間上的判斷,如果用正則就不太方便,因爲有閏年的2月這個東西要處理,而我在第3次作業中不考慮這些,只是用了"^(([2]\d{3})-(([0]\d)|([1][012]))-(([12]\d)|([3][01])))$",希望有哪位老大可以幫我想象有什麽辦法可以解決這個問題。其實在作業中我都用正則判斷是爲了在Check時方便些,或則說耦合低一些。下面是我check的代碼
class Check
{
/// <summary>
/// 輸入を検査する
/// </summary>
/// <param name="style">
/// 項目名称
/// </param>
/// <param name="regExpression">
/// 所要が利用される正則表現式
/// </param>
/// <param name="inputString">
/// 輸入したデータ
/// </param>
/// <returns>
/// 成立であるかどうかを検査する
/// </returns>
public static bool CheckInput(string style, string regExpression, string inputString)
{
// 正則表現式が判断することを利用する
Regex r = new Regex(regExpression);
Match m = r.Match(inputString.Trim());
if (m.Success)
{
return true;
}
else
{
// 違った項目を印字する
MessageBox.Show("Error of " + style);
return false;
}
}
}