正則中經常使用符號web
貪婪非貪婪 正則表達式
Unicode編碼編碼
避免亂碼url
UNICODE 是目前用來解決 ASCII 碼 256 個字符限制問題的一種比較流行的解決方案。你們知道,ASCII 字符集只有256個字符,用 0-255 之間的數字來表示。包括大小寫字母、數字以及少數特殊字符;如標點符號、貨幣符號等。對於大多數拉丁語言來講,這些字符已經夠用。可是,許多亞洲和東方語言所用的字符遠遠不止256個字符。有些超過千個。人們爲了突破 ASCII 碼字符數的限制,試圖用一種簡單的方法來針對超過256個字符的語言編寫計算機程序。因而 UNICODE 應運而生。UNICODE 經過用雙字節來表示一個字符,從而在更大範圍內將數字代碼映射到多種語言的字符集。 Unicode給每一個字符提供了一個惟一的數字,不管是什麼平臺,不管是什麼程序,不論什麼語言。Unicode標準已經被這些工業界的領導們所採用,spa
刪除多個空格.net
正則實例3d
郵箱code
經常使用的實用正則表達式整理htm
只能輸入數字:"^[0-9]*$"。blog
只能輸入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"。
用正則表達式限制只能輸入中文:onkeyup="value=value.replace(/[^"u4E00-"u9FA5] /g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^"u4E00-"u9FA5]/g,’’))"
用正則表達式限制只能輸入數字:onkeyup="value=value.replace(/[^"d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^"d]/g,’’))"
用正則表達式限制只能輸入數字和英文:onkeyup="value=value.replace(/["W]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^"d]/g,’’))"
得用正則表達式從URL地址中提取文件名的JavaScript程序,以下結果爲page1
如下是引用片斷: s="http://www.9499.net/page1.htm" s=s.replace(/(.*"/){0,}([^".]+).*/ig,"$2") alert(s) |
匹配雙字節字符(包括漢字在內):[^x00-xff]
評註:能夠用來計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)
匹配空白行的正則表達式:ns*r
評註:能夠用來刪除空白行
匹配HTML標記的正則表達式: <(S*?)[^>]*>.*? | <.*? />
評註:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對於複雜的嵌套標記依舊無能爲力
匹配首尾空白字符的正則表達式:^s* |s*$
評註:能夠用來刪除行首行尾的空白字符(包括空格、製表符、換頁符等等),很是有用的表達式
匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
評註:表單驗證時很實用
匹配網址URL的正則表達式:[a-zA-z]+://[^s]*
評註:網上流傳的版本功能頗有限,上面這個基本能夠知足需求
匹配賬號是否合法(字母開頭,容許5-16字節,容許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
評註:表單驗證時很實用
匹配國內電話號碼:d{3}-d{8} |d{4}-d{7}
評註:匹配形式如 0511-4405222 或 021-87888822
匹配騰訊QQ號:[1-9][0-9]{4,}
評註:騰訊QQ號從10000開始
匹配中國郵政編碼:[1-9]d{5}(?!d)
評註:中國郵政編碼爲6位數字
匹配身份證:d{15} |d{18}
評註:中國的身份證爲15位或18位
匹配ip地址:d+.d+.d+.d+
評註:提取ip地址時有用
匹配特定數字:
^[1-9]d*$ //匹配正整數
^-[1-9]d*$ //匹配負整數
^-?[1-9]d*$ //匹配整數
^[1-9]d* ¦0$ //匹配非負整數(正整數 + 0)
^-[1-9]d* ¦0$ //匹配非正整數(負整數 + 0)
^[1-9]d*.d* ¦0.d*[1-9]d*$ //匹配正浮點數
^-([1-9]d*.d* ¦0.d*[1-9]d*)$ //匹配負浮點數
^-?([1-9]d*.d* ¦0.d*[1-9]d* ¦0?.0+ ¦0)$ //匹配浮點數
^[1-9]d*.d* ¦0.d*[1-9]d* ¦0?.0+ ¦0$ //匹配非負浮點數(正浮點數 + 0)
^(-([1-9]d*.d* ¦0.d*[1-9]d*)) ¦0?.0+ ¦0$ //匹配非正浮點數(負浮點數 + 0)
評註:處理大量數據時有用,具體應用時注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26個英文字母組成的字符串
^[A-Z]+$ //匹配由26個英文字母的大寫組成的字符串
^[a-z]+$ //匹配由26個英文字母的小寫組成的字符串
^[A-Za-z0-9]+$ //匹配由數字和26個英文字母組成的字符串
^w+$ //匹配由數字、26個英文字母或者下劃線組成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+___FCKpd___0quot; //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?___FCKpd___0quot; //url