第一次作業時,判斷數字那個方法就想到用正則了,可在MSDN里一看,Match只是在指定字符串里查找匹配表達式的部分,而我要的功能確是讓字符串符合表達式,當時,感覺時間緊張,就此作罷~~
今天看到 檢查用戶名,密碼,我又想起了正則。記憶中正則有這樣的功能的啊,為何我就沒找到相關方法呢?于是,今天又花時間看起了MSDN。功夫不負有心人,看到了^與$的功能,一頭一尾,不就可以當完全匹配來用嗎?于是,寫了如下方法:
public?static?bool?CheckPassword(string?password)

????????
{
????????????return?Regex.IsMatch(password,?"^[0-9a-zA-Z]{6,16}$");
????????????
????????}

public?static?bool?CheckName(string?name)

????????
{
????????????return?Regex.IsMatch(name,?"^[a-zA-Z]{1,20}$");
????????}再想下那個CheckNumber,不也能很快解決嗎?
有興趣的可以試著寫一下~~
8.9追加
昨天寫文時,有點晚了,所以COPY了已有的代碼,就完結了,并沒寫出CheckNumber,回家時,仔細考慮了下,感覺也得花點時間才寫的出來~~
今天看了cypha的文,地址如下:
http://m.tkk7.com/challenxing/archive/2006/08/09/62497.html看他的表達式那么短,于是測試了下,有些方面沒考慮到~~
如:開頭多個0,結尾小數點等。
于是改進了下,附帶一提,vs2005下需要兩個“\”才不報錯~~
(一篇文里不能用兩次代碼嗎?點了居然沒反應-_-|||)
public bool CheckNumber(String number)
??????? {
??????????? return Regex.IsMatch(number, "^[-|+]?([1-9][0-9]*\\.?[0-9]+|0\\.[0-9]+)|[0-9]$");
??????? }
最后加了[0-9]是因為,前面一部分將一位數給忽略了~~
如有更簡潔更好的表達式,望賜教~