[TOC]
#### JS 常用正則驗證
## 1 用戶名正則 4到16位(字母,數字,下劃線,減號)
```
let checkPwd = (rule, value, callback) => {
const reg = new RegExp(/^[a-zA-Z0-9_-]{4,16}$/);
if (!reg.test(value)) return callback( new Error('密碼必須包含數字字母或下劃線!') )
}
```
*****
## 2 密碼強度正則
~~~
//密碼強度正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字符var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;//輸出 trueconsole.log("=="+pPattern.test("dishait#"));
~~~
```
let checkPwd = (rule, value, callback) => {
const reg = new RegExp(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z_]{6,20}$/);
if (!reg.test(value)) return callback( new Error('密碼必須包含數字字母或下劃線!') )
}
```
*****
## 3 整數正則
~~~
//正整數正則var posPattern = /^\d+$/;//負整數正則var negPattern = /^-\d+$/;//整數正則var intPattern = /^-?\d+$/;//輸出 trueconsole.log(posPattern.test("42"));//輸出 trueconsole.log(negPattern.test("-42"));//輸出 trueconsole.log(intPattern.test("-42"));
~~~
## 4 數字正則
可以是整數也可以是浮點數
~~~
//正數正則var posPattern = /^\d*\.?\d+$/;//負數正則var negPattern = /^-\d*\.?\d+$/;//數字正則var numPattern = /^-?\d*\.?\d+$/;console.log(posPattern.test("42.2"));console.log(negPattern.test("-42.2"));console.log(numPattern.test("-42.2"));
~~~
## 5 Email正則
~~~
//Email正則var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;//輸出 trueconsole.log(ePattern.test("99154507@qq.com"));
~~~
## 6 手機號碼正則
~~~
//手機號正則var mPattern = /^1[34578]\d{9}$/; //輸出 trueconsole.log(mPattern.test("15507621888"));
~~~
```
let isMobile = (rule, value, callback) => {
if (!(/^1[3456789]\d{9}$/.test(value))) return callback(new Error('手機號格式不正確!'))
}
```
*****
## 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"));
~~~
## 8 URL正則
~~~
//URL正則var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;//輸出 trueconsole.log(urlP.test("http://test.com"));
~~~
## 9 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"));
~~~
## 10 十六進制顏色正則
~~~
//RGB Hex顏色正則var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;//輸出 trueconsole.log(cPattern.test("#b8b8b8"));
~~~
## 11 日期正則
~~~
//日期正則,簡單判定,未做月份及日期的判定var dP1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;//輸出 trueconsole.log(dP1.test("2017-05-11"));//輸出 trueconsole.log(dP1.test("2017-15-11"));//日期正則,復雜判定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"));
~~~
## 12 QQ號碼正則
~~~
//QQ號正則,5至11位var qqPattern = /^[1-9][0-9]{4,10}$/;//輸出 trueconsole.log(qqPattern.test("65974040"));
~~~
## 13 微信號正則
~~~
//微信號正則,6至20位,以字母開頭,字母,數字,減號,下劃線var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;//輸出 trueconsole.log(wxPattern.test("dishait_com"));
~~~
## 14 車牌號正則
~~~
//車牌號正則var cPattern = /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/;//輸出 trueconsole.log(cPattern.test("粵B39006"));
~~~
## 15 包含中文正則
~~~
//包含中文正則var cnPattern = /[\u4E00-\u9FA5]/;//輸出 trueconsole.log(cnPattern.test("蔡寶堅"));
~~~
- 起步
- 環境搭建
- mock數據
- 基礎
- 生命周期
- 過濾器
- 過渡動畫
- keyframes動畫
- 動畫JS鉤子
- 路由
- 導航守衛
- 全局守衛
- 監聽器
- 自定義組件
- 獲取焦點
- mixins
- mixins抽離vuex
- 國際化
- 動態組件
- Dom
- 擴展
- 安裝devTools
- scss
- Nuxt引用多個UI庫
- vuex
- vuex命名空間
- vuex定義
- cli
- 安裝與卸載
- 環境變量
- 雜項
- Mock數據
- FeHelper
- git
- 反向代理
- 本地存儲
- stylus
- 常用mixins
- jsonp
- 配置
- mock配置
- 跨域配置
- 自定義路徑
- px2rem
- 代理后端請求
- 常用算法
- 字母排序城市數據
- 倒計時
- 通訊錄數據結構
- 請求
- axios防止多次請求
- 封裝axios請求
- axios使用
- 封裝axios
- 插件
- BetterScroll
- 高德定位
- polyfill
- fastClick
- LazyLoad
- storageCache
- moment
- keyFrameAnimation
- vueSwiper
- 組件
- Loading組件
- header組件
- 仿有道App導航
- SupportIcon
- 仿餓了么購物車跳動
- 購物車小球緩動
- 小球飛入購物車
- 仿音樂歌手列表
- 唱片飛入效果
- 搜索組件
- 仿美團PC搜索框
- 頁面布局
- stickyFooter
- 背景色漸變
- 背景虛化
- Ui組件
- CubeUi
- CreateApi
- tab滑屏切換
- 索引列表
- BScroll
- BScroll左右聯動導航
- vant
- 函數庫
- 常用Dom函數庫
- axios封裝
- 格式化音樂播放時長
- 搜索節流
- time格式化
- JS基礎
- window對象中的高度
- JS中的寬高
- 常用正則
- nuxt
- nuxtVuex
- 監聽頁面滾動
- 監聽body滾動
- 監聽局部滾動