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