用regRange輕易實現特定數字範圍的正則驗證,如時間,IP等 (轉)
經常會看到類似以下的鄭澤驗證
1.時間
^(0|[1-9]d{0,2}|[0-1]d{3}|20d{2}|20[0-4]d|2050)-(d|0d|1[0-2])-(d|[0-2]d|3[0-1])( (d|[0-1]d|2[0-3]):(d|[0-4]d|5[0-9])(:(d|[0-4]d|5[0-9]))?)?$
2.
^(0|[1-9]d?|[0-1]d{2}|2[0-4]d|25[0-5]).(0|[1-9]d?|[0-1]d{2}|2[0-4]d|25[0-5]).(0|[1-9]d?|[0-1]d{2}|2[0-4]d|25[0-5]).(0|[1-9]d?|[0-1]d{2}|2[0-4]d|25[0-5])$
看起來需要一定正則知識的人才能寫出來,但現在用了regRange就不一樣了
你只需要寫數字範圍以外的符號,如"-",":","."等
1.時間
string regDate=regRange(2050) + "-" + regRange(12) + "-" + regRange(31);
string regTime=regRange(23) + ":" + regRange(59) + "(:" + regRange(59) + ")?";
string regDateTime= "^" + regDate + "( " + regTime + ")?$";
2.IP地址
string regIP= "^" + regRange(255) + "." + regRange(255) + "." + regRange(255) + "." + regRange(255) + "$";
是不是變得很簡單?
regRange程式碼如下
string regRange(int t){
/**********(qiushuiwuhen 2002-12-12)***********/
string s=t.ToString();
int p,l=s.Length;
StringBuilder ret=new StringBuilder("(");
if(l>2)
ret.Append("0|[1-9]d"+((l>3)?"{0," + (l-2) + "}":"?")+"|");
else if(l>1)
ret.Append("|");
for(int i=0;i
ret.Append("|"+s.Substring(0,i));
p=s[i]-48;
if(l-i>1)
ret.Append(((p>1)?"[0-" + (p-1) + "]":"0")+((l-i>2)?"{" + (l-i-1) + "}":""));
else
ret.Append(((p>0)?"[0-" + p + "]":"0")+")");
}
return ret.ToString();
}
範例:
for(int i=0;i<33;i++)
if(!Regex.IsMatch("2002-12-"+i,regDateTime))Response.Write(i+" Error
");
for(int i=0;i<257;i++)
if(!Regex.IsMatch("127.0.0."+i,regIP))Response.Write(i+" Error
");
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-977243/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 正則匹配案例(驗證是否是一個有效數字、驗證手機號、驗證郵箱、匹配一個漢字範圍、匹配一個漢字姓名)...
- Go IP 段範圍校驗Go
- python - 生成時間範圍Python
- 驗證數字的正規表示式集
- JS實現檢查給定時間範圍是否在每天的某個時間段內JS
- js正則驗證身份證號JS
- 驗證數字金額的正規表示式
- 正則匹配數字
- 實體店是否屬於數字化智慧經營的適用範圍?
- 手機號碼驗證方法(正則驗證)
- 將nan, inf轉為特定的數字NaN
- uniapp 周選擇範圍時間APP
- Oracle日期時間範圍查詢Oracle
- MySQL 時間戳的 獲取 & 轉換為特定時間格式MySql時間戳
- 打家劫舍+數字範圍按位與
- PHP實現隨機數字、字母的驗證碼功能PHP隨機
- 正則實現數學運算
- 譜範數正則(Spectral Norm Regularization)的理解ORM
- JS常用正規表示式及驗證時間的正規表示式JS
- JS正規表示式驗證數字(非常全)JS
- 匹配指定範圍整數正規表示式
- Python限制輸入數字的範圍常用方法!Python
- jQuery Validate限定輸入數字大小的範圍jQuery
- Javascript使用正則驗證身份證號(簡單)JavaScript
- 驗證二進位制數字正規表示式
- 【Go】IP地址轉換:數字與字串之間高效轉換Go字串
- 簡易實用的JavaScript日期時間操作!JavaScript
- 賬戶、密碼格式···正則驗證密碼
- 為你的 Laravel Nova 新增時間範圍篩選Laravel
- JS判定一個給定的時間在某個時間範圍內JS
- ip段/數字,如192.168.0.1/24是什麼意思?
- DDD中實現業務規則的驗證 - Marcin
- 驗證手機、郵箱、漢字、身份證、URL、IP地址等java程式碼工具類Java
- JS判定一個給定的時間區間在哪些時間段範圍內JS
- app直播原始碼,驗證時實現獲取驗證碼並顯示倒數計時的功能APP原始碼
- IP地址分類及範圍
- js驗證數字JS
- Python實現snap:對齊多張遙感影像的空間範圍Python
- 驗證for迴圈列印數字1-9999所需要使用的時間(毫秒)