1.驗證數字:只能輸入1個數字 運算式 ^\d$ 描述 匹配一個數字 匹配的例子 0,1,2,3 不匹配的例子 2.只能輸入n個數字 運算式 ^\d{n}$ 例如^\d{8}$ 描述 匹配8個數字 匹配的例子 12345678,22223334,12344321 不匹配的例子 3.只能輸入至少n個數字 運算式 ^\d{n,}$ 例如^\d{8,}$ 描述 匹配最少n個數字 匹配的例子 12345678,123456789,12344321 不匹配的例子 4.只能輸入m到n個數字 運算式 ^\d{m,n}$ 例如^\d{7,8}$ 描述 匹配m到n個數字 匹配的例子 12345678,1234567 不匹配的例子 123456,1234567895.只能輸入數字 運算式 ^[0-9]*$ 描述 匹配任意個數字 匹配的例子 12345678,1234567 不匹配的例子 E,清清月兒,http://blog.csdn.net/21aspnet6.只能輸入某個區間數字 運算式 ^[12-15]$ 描述 匹配某個區間的數字 匹配的例子 12,13,14,15 不匹配的例子 7.只能輸入0和非0打頭的數字 運算式 ^(0|[1-9][0-9]*)$ 描述 可以為0,第一個數字不能為0,數字中可以有0 匹配的例子 12,10,101,100 不匹配的例子 01,清清月兒,http://blog.csdn.net/21aspnet8.只能輸入實數 運算式 ^[-+]?\d+(\.\d+)?$ 描述 匹配實數 匹配的例子 18,+3.14,-9.90 不匹配的例子 .6,33s,67-999.只能輸入n位小數的正實數 運算式 ^[0-9]+(.[0-9]{n})?$以^[0-9]+(.[0-9]{2})?$為例 描述 匹配n位小數的正實數 匹配的例子 2.22 不匹配的例子 2.222,-2.22,http://blog.csdn.net/21aspnet10.只能輸入m-n位小數的正實數 運算式 ^[0-9]+(.[0-9]{m,n})?$以^[0-9]+(.[0-9]{1,2})?$為例 描述 匹配m到n位小數的正實數 匹配的例子 2.22,2.2 不匹配的例子 2.222,-2.2222,http://blog.csdn.net/21aspnet11.只能輸入非0的正整數 運算式 ^\+?[1-9][0-9]*$ 描述 匹配非0的正整數 匹配的例子 2,23,234 不匹配的例子 0,-4,12.只能輸入非0的負整數 運算式 ^\-[1-9][0-9]*$ 描述 匹配非0的負整數 匹配的例子 -2,-23,-234 不匹配的例子 0,4,13.只能輸入n個字元 運算式 ^.{n}$ 以^.{4}$為例 描述 匹配n個字元,注意漢字只算1個字元 匹配的例子 1234,12we,123清,清清月兒 不匹配的例子 0,123,123www,http://blog.csdn.net/21aspnet/14.只能輸入英文字元 運算式 ^.[A-Za-z]+$為例 描述 匹配英文字元,大小寫任意 匹配的例子 Asp,WWW, 不匹配的例子 0,123,123www,http://blog.csdn.net/21aspnet/15.只能輸入大寫英文字元 運算式 ^.[A-Z]+$為例 描述 匹配英文大寫字元 匹配的例子 NET,WWW, 不匹配的例子 0,123,123www,16.只能輸入小寫英文字元 運算式 ^.[a-z]+$為例 描述 匹配英文大寫字元 匹配的例子 asp,csdn 不匹配的例子 0,NET,WWW,17.只能輸入英文字元+數字 運算式 ^.[A-Za-z0-9]+$為例 描述 匹配英文字元+數字 匹配的例子 1Asp,W1W1W, 不匹配的例子 0,123,123,www,http://blog.csdn.net/21aspnet/18.只能輸入英文字元/數字/底線 運算式 ^\w+$為例 描述 匹配英文字元或數字或底線 匹配的例子 1Asp,WWW,12,1_w 不匹配的例子 3#,2-4,w#$,http://blog.csdn.net/21aspnet/19.密碼舉例 運算式 ^.[a-zA-Z]\w{m,n}$ 描述 匹配英文字元開頭的m-n位字元且只能數字字母或底線 匹配的例子 不匹配的例子 20.驗證首字母大寫 運算式 \b[^\Wa-z0-9_][^\WA-Z0-9_]*\b 描述 首字母只能大寫 匹配的例子 Asp,Net 不匹配的例子 http://blog.csdn.net/21aspnet/21.驗證網址(帶?id=中文)VS.NET2005無此功能 運算式 ^http:\/\/([\w-]+(\.[\w-]+)+(\/[\w- .\/\?%&=\u4e00-\u9fa5]*)?)?$ 描述 驗證帶?id=中文 匹配的例子 http://blog.csdn.net/21aspnet/,http://blog.csdn.net?id=清清月兒 不匹配的例子 22.驗證漢字 運算式 ^[\u4e00-\u9fa5]{0,}$ 描述 只能漢字 匹配的例子 清清月兒 不匹配的例子 http://blog.csdn.net/21aspnet/23.驗證QQ號 運算式 [0-9]{5,9} 描述 5-9位的QQ號 匹配的例子 10000,123456 不匹配的例子 10000w,http://blog.csdn.net/21aspnet/24.驗證電子郵件(驗證MSN號一樣) 運算式 \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 描述 注意MSN用非hotmail.com郵箱也可以 匹配的例子 aaa@msn.com 不匹配的例子 111@1. http://blog.csdn.net/21aspnet/25.驗證社會安全號碼(粗驗,最好伺服器端調類庫再細驗證) 運算式 ^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$ 描述 匹配的例子 15或者18位的社會安全號碼,支援帶X的 不匹配的例子 http://blog.csdn.net/21aspnet/26.驗證手機號(包含159,不包含小靈通) 運算式 ^13[0-9]{1}[0-9]{8}|^15[9]{1}[0-9]{8} 描述 包含159的手機號130-139 匹配的例子 139XXXXXXXX 不匹配的例子 140XXXXXXXX,http://blog.csdn.net/21aspnet/27.驗證電話號碼號(很複雜,VS.NET2005給的是錯的) 運算式(不完美) 方案一 ((\(\d{3}\)|\d{3}-)|(\(\d{4}\)|\d{4}-))?(\d{8}|\d{7})方案二 (^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$) 支援手機號但也不完美 描述 上海:02112345678 3+8位上海:021-12345678上海:(021)-12345678上海:(021)12345678鄭州:03711234567 4+7位杭州:057112345678 4+8位還有帶上分機號,國家碼的情況由於情況非常複雜所以不建議前台做100%驗證,到目前為止似乎也沒有誰能寫一個包含所有的類型,其實有很多情況本身就是矛盾的。如果誰有更好的驗證電話的請留言 匹配的例子 不匹配的例子 28.驗證護照 運算式 (P\d{7})|G\d{8}) 描述 驗證P+7個數字和G+8個數字 匹配的例子 不匹配的例子 清清月兒,http://blog.csdn.net/21aspnet/29.驗證IP 運算式 ^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$ 描述 驗證IP 匹配的例子 192.168.0.1 222.234.1.4 不匹配的例子 30.驗證域 運算式 ^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.s|)$ 描述 驗證域 匹配的例子 csdn.net baidu.com it.com.cn 不匹配的例子 192.168.0.1 31.驗證信用卡 運算式 ^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$ 描述 驗證VISA卡,萬事達卡,Discover卡,美國運通卡 匹配的例子 不匹配的例子 32.驗證ISBN國際標準書號 運算式 ^(\d[- ]*){9}[\dxX]$ 描述 驗證ISBN國際標準書號 匹配的例子 7-111-19947-2 不匹配的例子 33.驗證GUID全球唯一識別碼 運算式 ^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$ 描述 格式8-4-4-4-12 匹配的例子 2064d355-c0b9-41d8-9ef7-9d8b26524751 不匹配的例子 34.驗證檔案路徑和副檔名 運算式 ^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.txt(l)?$ 描述 檢查路徑和副檔名 匹配的例子 E:\mo.txt 不匹配的例子 E:\ , mo.doc, E:\mo.doc ,http://blog.csdn.net/21aspnet/35.驗證Html顏色值 運算式 ^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$ 描述 檢查顏色取值 匹配的例子 #FF0000 不匹配的例子 http://blog.csdn.net/21aspnet/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$整數或者小數:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能輸入數字:"^[0-9]*$"。 只能輸入n位的數字:"^\d{n}$"。 只能輸入至少n位的數字:"^\d{n,}$"。 只能輸入m~n位的數字:。"^\d{m,n}$" 只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。 只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。 只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。 只能輸入非零的正整數:"^\+?[1-9][0-9]*$"。 只能輸入非零的負整數:"^\-[1-9][]0-9"*$。 只能輸入長度為3的字元:"^.{3}$"。 只能輸入由26個英文字母組成的字串:"^[A-Za-z]+$"。 只能輸入由26個大寫英文字母組成的字串:"^[A-Z]+$"。 只能輸入由26個小寫英文字母組成的字串:"^[a-z]+$"。 只能輸入由數字和26個英文字母組成的字串:"^[A-Za-z0-9]+$"。 只能輸入由數字、26個英文字母或者底線組成的字串:"^\w+$"。 驗證使用者密碼:"^[a-zA-Z]\w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字元、數字和底線。 驗證是否含有^%&',;=?$\"等字元:"[^%&',;=?$\x22]+"。 只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$" 驗證Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。 驗證InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。 驗證電話號碼:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正確格式為:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。 驗證社會安全號碼(15位或18位元字):"^\d{15}|\d{18}$"。 驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。 驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。 匹配中文字元的Regex: [\u4e00-\u9fa5] 匹配雙位元組字元(包括漢字在內):[^\x00-\xff] 應用:計算字串的長度(一個雙位元組字元長度計2,ASCII字元計1) String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;} 匹配空行的Regex:\n[\s| ]*\r 匹配html標籤的Regex:<(.*)>(.*)<\/(.*)>|<(.*)\/>匹配首尾空格的Regex:(^\s*)|(\s*$) 應用:javascript中沒有像vbscript那樣的trim函數,我們就可以利用這個運算式來實現,如下: String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } 利用Regex分解和轉換IP地址: 下面是利用Regex匹配IP地址,並將IP地址轉換成對應數值的Javascript程式: function IP2V(ip) { re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的Regex if(re.test(ip)) { return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 } else { throw new Error("Not a valid IP address!") } } 不過上面的程式如果不用Regex,而直接用split函數來分解可能更簡單,程式如下: var ip="10.100.20.168" ip=ip.split(".") alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1)) 匹配Email地址的Regex:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配網址URL的Regex:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 利用Regex限制網頁表單裡的文字框輸入內容: 用Regex限制只能輸入中文: 用Regex限制只能輸入全形字元: 用Regex限制只能輸入數字:用Regex限制只能輸入數字和英文:<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5\w]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5\w]/g,''))" value="允許底線,數字字母和漢字"><script language="javascript">if (document.layers)//觸發鍵盤事件 document.captureEvents(Event.KEYPRESS) function xz(thsv,nob){ if(nob=="2"){ window.clipboardData.setData("text","") alert("避免非法字元輸入,請勿複製字元"); returnfalse; } if (event.keyCode!=8&& event.keyCode!=16&& event.keyCode!=37&& event.keyCode!=38&& event.keyCode!=39&& event.keyCode!=40){ thsvv=thsv.value;//輸入的值 thsvs=thsvv.substring(thsvv.length-1);//輸入的最後一個字元 //thsvss=thsvv.substring(0,thsvv.length-1);//去掉最後一個錯誤字元 if (!thsvs.replace(/[^\u4E00-\u9FA5\w]/g,'') || event.keyCode==189){//正則除去符號和底線 key thsv.value='請勿輸入非法符號 ['+thsvs+']'; alert('請勿輸入非法符號 ['+thsvs+']'); thsv.value=""; returnfalse; } } } script><input onkeyup="xz(this,1)" onPaste="xz(this,2)" value="">允許數字字母和漢字<script language="javascript">