亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

常用JavaScript正則表達式匯編與示例詳解

2020-01-20 21:58:46
字體:
來源:轉載
供稿:網友

1.1 前言

目前收集整理了21個常用的javaScript正則表達式,其中包括用戶名、密碼強度、整數、數字、電子郵件地址(Email)、手機號碼、身份證號、URL地址、 IP地址、 十六進制顏色、 日期、 微信號、車牌號、中文正則等。表單驗證處理必備,趕緊收藏吧!

還會陸續加入新的正則進來,大家多提寶貴意見!

2.1 用戶名正則

2.1.1 基本用戶名正則

在做用戶注冊時,都會用到用戶名正則校驗。

定義基本用戶名命名規則如下:

  1. 最短4位,最長16位 {4,16}
  2. 可以包含小寫大母 [a-z] 和大寫字母 [A-Z]
  3. 可以包含數字 [0-9]
  4. 可以包含下劃線 [ _ ] 和減號 [ - ]
  5. 首字母只能是大小寫字母
var pattern = /^[a-zA-Z][a-zA-Z0-9_-]{3,15}$/;//輸出 trueconsole.log("ifat3 : "+pattern.test('ifat3'));//輸出 trueconsole.log("Ifat3 : "+pattern.test('Ifat3'));//輸出 trueconsole.log("ke30 : "+pattern.test('ke30'));//輸出 falseconsole.log("30ke : "+pattern.test('30ke'));//輸出 falseconsole.log("ke3 : "+pattern.test('ke3'));輸出 falseconsole.log("ke30@ : "+pattern.test('ke30@'));//輸出 falseconsole.log("ke30ke30ke30ke30ke30 : "+pattern.test('ke30ke30ke30ke30ke30'));

2.1.2 中文用戶名正則

如果規則中加入允許中文用戶名,則變更正則表達式如下:

var pattern = /^[a-zA-Z/u4E00-/u9FA5][a-zA-Z0-9/u4E00-/u9FA5_-]{3,15}$/;//輸出 trueconsole.log("ifat3 : "+pattern.test('ifat3'));//輸出 trueconsole.log("Ifat3 : "+pattern.test('Ifat3'));//輸出 trueconsole.log("三十課毛瑞 : "+pattern.test('三十課毛瑞'));//輸出 falseconsole.log("30ke : "+pattern.test('30ke'));//輸出 falseconsole.log("ke3 : "+pattern.test('ke3'));//輸出 falseconsole.log("ke30@ : "+pattern.test('ke30@')); //輸出 falseconsole.log("ke30ke30ke30ke30ke30 : "+pattern.test('ke30ke30ke30ke30ke30'));

其中[/u4E00-/u9FA5]是漢字的正則匹配,包括基本漢字2萬多個,其中/u4E00表示漢字“一”,具體請參見《漢字unicode編碼范圍》。

2.2 密碼強度正則

//密碼強度正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字符var pPattern = /^.*(?=.{6,})(?=.*/d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;//輸出 trueconsole.log("iFat3#:"+pPattern.test("iFat3#"));

上述正則表達式只能對用戶密碼強度進行基本的通過性判定,關于密碼強度驗證更多的內容可參見:基于規則評分的密碼強度檢測算法分析及實現。

2.3 數字相關正則

2.3.1 整數正則

//正整數正則var posPattern = /^/d+$/;//負整數正則var negPattern = /^-/d+$/;//整數正則var intPattern = /^-?/d+$/;//輸出 trueconsole.log("30:"+posPattern.test("30"));//輸出 trueconsole.log("-30:"+negPattern.test("-30"));//輸出 trueconsole.log("-30:"+intPattern.test("-30"));

2.3.2 浮點數正則

//正浮點數正則var posPattern = /^/d*/./d+$/;//負浮點數正則var negPattern = /^-/d*/./d+$/;//兩位小數正則var twoPattern = /^-?/d*/./d{2}$/; //輸出 trueconsole.log("30.2:"+posPattern.test("30.2"));//輸出 true console.log("-30.2:"+negPattern.test("-30.2"));//輸出 true console.log("-30.22:"+twoPattern.test("-30.22"));

2.3.3 整數浮點數正則

可以是整數也可以是浮點數

//正數正則var posPattern = /^/d*/.?/d+$/;//負數正則var negPattern = /^-/d*/.?/d+$/;//數字正則var numPattern = /^-?/d*/.?/d+$/;//輸出 trueconsole.log("30.2:"+posPattern.test("30.2"));//輸出 true console.log("-30.2:"+negPattern.test("-30.2"));//輸出 true console.log("-30.2:"+numPattern.test("-30.2"));

2.4 日期正則

2.4.1 出生日期正則

var pattern = /^((19[2-9]/d{1})|(20((0[0-9])|(1[0-8]))))/-((0?[1-9])|(1[0-2]))/-((0?[1-9])|([1-2][0-9])|30|31)$/;//輸出 trueconsole.log(pattern.test("1923-3-18"));//輸出 trueconsole.log(pattern.test("1923-4-31"));//輸出 trueconsole.log(pattern.test("1923-2-29"));//輸出 trueconsole.log(pattern.test("2016-2-29"));

上述正則驗證還不完善,主要是2,4,6,9,11月份的天數問題。

2.4.2 通用日期正則

//日期正則,復雜判定var dP2 = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;//輸出 trueconsole.log(dP2.test("2017-02-11"));//輸出 falseconsole.log(dP2.test("2017-15-11"));//輸出 falseconsole.log(dP2.test("2017-02-29"));

2.5 Email正則

2.5.1 基本Email正則

var pattern = /^([A-Za-z0-9_/-/.])+/@([A-Za-z0-9_/-/.])+/.([A-Za-z]{2,4})$/;//輸出 trueconsole.log(pattern.test('cn30ke@163.com'));//輸出 trueconsole.log(pattern.test('ifat3@sina.com.cn'));//輸出 trueconsole.log(pattern.test('ifat3.it@163.com'));//輸出 trueconsole.log(pattern.test('ifat3_-.@30ke.cn'));//輸出 falseconsole.log(pattern.test('ifat3@30ke.online'));//輸出 falseconsole.log(pattern.test('毛瑞@30ke.cn'));

基本Email正則是最常用的驗證方式,也適合大多數的應用場景。從以上測試可以看出,該表達式不支持.online及.store結尾的域名。如需兼容這類域名(大于4位),調整正則結尾{2,4}的限制部分即可(例:{2,8})。另一個問題是Email用戶名不能包括中文。

2.5.2 中文名Email正則

根據前一正則中的問題,追加兩條規則如下:

用戶名可以包括中文 [/u4e00-/u9fa5]
域名結尾最長可為8位 {2,8}

var pattern = /^([A-Za-z0-9_/-/./u4e00-/u9fa5])+/@([A-Za-z0-9_/-/.])+/.([A-Za-z]{2,8})$/;//輸出 trueconsole.log(pattern.test('cn30ke@163.com'));//輸出 trueconsole.log(pattern.test('ifat3@sina.com.cn'));//輸出 trueconsole.log(pattern.test('ifat3.it@163.com'));//輸出 trueconsole.log(pattern.test('ifat3_-.@30ke.cn'));//輸出 trueconsole.log(pattern.test('ifat3@30ke.online'));//輸出 trueconsole.log(pattern.test('毛瑞@30ke.cn'));

2.5.3 特定域名Email正則

在手機驗證碼出現之前,差不多郵箱驗證是保證用戶唯一性的唯一條件。而臨時郵箱(也稱10分鐘郵箱或一次性郵箱)的出現,則使得郵箱驗證及帳戶激活這種機制失去了意義。而臨時郵箱的地址是不可枚舉的,我們只能才采取白名單的方式,只允許有限的郵箱域名通過驗證。

var pattern = /^([A-Za-z0-9_/-/.])+/@(163.com|qq.com|30ke.cn)$/;//輸出 trueconsole.log(pattern.test('cn30ke@163.com'));//輸出 falseconsole.log(pattern.test('ifat3@sina.com.cn'));//輸出 trueconsole.log(pattern.test('ifat3.it@163.com'));//輸出 trueconsole.log(pattern.test('ifat3_-.@30ke.cn'));//輸出 falseconsole.log(pattern.test('ifat3@30ke.online'));//輸出 falseconsole.log(pattern.test('毛瑞@30ke.cn'));

此方法雖然能保證驗證安全性,但是如果白名單太長會造成模式字符串太長。這時可以將郵箱域名白名單寫成數組,利用正則表達式做初步驗證,用白名單做域名的二次驗證。

常用域名白名單數組:

var domains= ["qq.com","163.com","vip.163.com","263.net","yeah.net","sohu.com","sina.cn","sina.com","eyou.com","gmail.com","hotmail.com"];

上述白名單只列舉了常用的11種郵箱域名,大家可以根據需要適當補充或刪減。

2.6 手機號碼正則

//手機號正則var mPattern = /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))/d{8}$/;//輸出 trueconsole.log(mPattern.test("18600000000"));

2.7 身份證號正則

//身份證號(18位)正則var cP = /^[1-9]/d{5}(18|19|([23]/d))/d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)/d{3}[0-9Xx]$/;//輸出 trueconsole.log(cP.test("11010519880605371X"));

上述正則只能對身份證號進行基本的通過性判定,關于公民身份號碼判定的更多內容可參見文檔:公民身份號碼正確性判定及程序實現

2.8 URL正則

//URL正則var urlP= /^((https?|ftp|file):////)?([/da-z/.-]+)/.([a-z/.]{2,6})([///w /.-]*)*//?$/;//輸出 trueconsole.log(urlP.test(http://30ke.cn));

2.9 IP地址

2.9.1 IPv4地址正則

//ipv4地址正則var ipP = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;//輸出 trueconsole.log(ipP.test("115.28.47.26"));

2.9.2 IPv6地址正則

//IPV6正則var pattern = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])/.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])/.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/;//輸出 trueconsole.log(pattern.test("fe80:0000:0000:0000:0204:61ff:fe9d:f156"));

2.10 十六進制顏色正則

//RGB Hex顏色正則var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;//輸出 trueconsole.log(cPattern.test("#b8b8b8"));

2.11 QQ號碼正則

//QQ號正則,5至11位var qqPattern = /^[1-9][0-9]{4,10}$/;//輸出 trueconsole.log(qqPattern.test("65974040"));

2.12 微信號正則

//微信號正則,6至20位,以字母開頭,字母,數字,減號,下劃線var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;//輸出 trueconsole.log(wxPattern.test("RuilongMao"));

2.13 車牌號正則

//車牌號正則var cPattern = /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/;//輸出 trueconsole.log(cPattern.test("京K39006"));

2.14 包含中文正則

//包含中文正則var cnPattern = /[/u4E00-/u9FA5]/;//輸出 trueconsole.log(cnPattern.test("30課"));

總結

以上所述是小編給大家介紹的常用JavaScript正則表達式匯編與示例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩精品综合网站| 久久精品亚洲一区| 日韩美女在线观看| 成年人精品视频| 亚洲天堂av在线播放| 日韩不卡在线观看| 久久在线精品视频| 综合av色偷偷网| 欧美黑人巨大精品一区二区| 中文字幕亚洲综合久久筱田步美| 亚洲电影在线看| 欧美最顶级丰满的aⅴ艳星| 欧美日韩一区二区在线| 欧美另类极品videosbest最新版本| 欧美一级免费看| 乱亲女秽乱长久久久| 91国内精品久久| 国产精品99一区| 色婷婷综合成人| 九九久久久久久久久激情| 亚洲激情在线观看视频免费| 国产盗摄xxxx视频xxx69| 成人中文字幕+乱码+中文字幕| 中文字幕在线日韩| 国产精品永久免费观看| 97在线免费观看视频| 成人av在线网址| 亚洲成人激情在线| 九九久久久久久久久激情| 亚洲日韩欧美视频| 久久中国妇女中文字幕| 中文一区二区视频| 国产日韩精品电影| 日本一区二三区好的精华液| 欧美孕妇性xx| 久久夜色精品国产亚洲aⅴ| 欧美人成在线视频| 992tv成人免费影院| 国产精品久久久久久久av电影| 日韩欧美亚洲范冰冰与中字| 2019精品视频| 国产一区二区美女视频| 久久99视频精品| 一本色道久久88亚洲综合88| 亚洲成色777777在线观看影院| 欧美在线视频一二三| 久久成人一区二区| 欧美大肥婆大肥bbbbb| 成人免费视频在线观看超级碰| 欧美一区二区三区免费视| 国产91色在线| 国内精品久久久久影院 日本资源| 日韩精品中文在线观看| 久久久极品av| 亚洲色图狂野欧美| 久久久噜噜噜久久中文字免| 热久久这里只有精品| 456国产精品| 91av视频导航| 91视频国产精品| 4388成人网| 国模吧一区二区| 欧美性猛交xxxx免费看漫画| 久久久久久伊人| 粗暴蹂躏中文一区二区三区| 精品国产鲁一鲁一区二区张丽| 亚洲欧美日韩精品久久亚洲区| 日韩中文字幕国产精品| 久久亚洲欧美日韩精品专区| 一区二区日韩精品| 日本高清不卡在线| 亚洲国产精品人久久电影| 国产欧美日韩综合精品| 精品国产31久久久久久| 在线观看中文字幕亚洲| 欧美精品videofree1080p| 久久不射热爱视频精品| 欧美大片va欧美在线播放| 亚洲精品自拍偷拍| 国产日韩精品在线播放| 久久精品在线视频| 在线国产精品播放| 久久视频在线免费观看| 狠狠爱在线视频一区| 奇米成人av国产一区二区三区| 中文字幕免费精品一区| 欧美日韩亚洲精品一区二区三区| 欧美大片大片在线播放| 国产精品久久久久久久久久新婚| 久久久成人精品视频| 原创国产精品91| 日韩美女免费视频| 国产精品三级在线| 亚洲综合中文字幕68页| 亚洲性夜色噜噜噜7777| 欧美午夜丰满在线18影院| 欧美第一黄网免费网站| 亚洲国产精品一区二区久| 国产精品ⅴa在线观看h| 国产精品久久久久77777| 久久夜色撩人精品| 九九精品视频在线| 91免费在线视频| 青青青国产精品一区二区| 欧美福利在线观看| 色综合天天狠天天透天天伊人| 日韩av123| 日韩精品免费在线视频观看| 免费av在线一区| 午夜精品久久久久久久久久久久| 精品人伦一区二区三区蜜桃免费| 亚洲天堂av在线免费| 久久精品国产欧美激情| 成人黄色av播放免费| 国产精品一区二区三区在线播放| 精品中文字幕在线观看| 国产美女精品视频免费观看| 久久99久久久久久久噜噜| 亚洲男人av在线| 91av在线看| 日本亚洲精品在线观看| 国产精品手机播放| 亚洲a级在线播放观看| 欧美日韩精品在线| 日韩美女免费线视频| 91成人福利在线| 久99九色视频在线观看| 久久影院模特热| 大桥未久av一区二区三区| 亚洲福利在线观看| 亚洲网站在线观看| 国产精品黄色影片导航在线观看| 欧美在线视频网| 日韩激情av在线免费观看| 亚洲性日韩精品一区二区| 亚洲欧美一区二区激情| 欧美激情综合色| 欧美日韩另类视频| 色综合天天狠天天透天天伊人| 国产精品久久视频| 亚洲视屏在线播放| 日韩亚洲欧美中文在线| 国产精品影院在线观看| 欧美成年人网站| 久久久久久久电影一区| 92福利视频午夜1000合集在线观看| 色综合久久天天综线观看| 欧美激情亚洲一区| 亚洲天堂网在线观看| 精品国内自产拍在线观看| 国产精品视频一| 国产精品国内视频| 欧美日韩国产精品一区二区三区四区| 中文字幕欧美日韩va免费视频| 久久精品国产精品| 韩国美女主播一区| www.日韩.com| 国产精品久久久久9999| 欧美丰满少妇xxxxx| 亚洲精品自拍视频| 欧美极品在线播放| 久久成人国产精品| 国内精品中文字幕| 欧美午夜激情在线|