# 特殊需求表達式
~~~
1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
4 手機號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
5 電話號碼("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
6 國內電話號碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
7 身份證號(15位、18位數字):^\d{15}|\d{18}$
8 短身份證號碼(數字、字母x結尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
9 帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):^[a-zA-Z]\w{5,17}$
11 強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
12 日期格式:^\d{4}-\d{1,2}-\d{1,2}
13 一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$
14 一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
15 錢的輸入格式:
16 1.有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$
17 2.這表示任意一個不以0開頭的數字,但是,這也意味著一個字符"0"不通過,所以我們采用下面的形式:^(0|[1-9][0-9]*)$
18 3.一個0或者一個不以0開頭的數字.我們還可以允許開頭有一個負號:^(0|-?[1-9][0-9]*)$
19 4.這表示一個0或者一個可能為負的開頭不為0的數字.讓用戶以0開頭好了.把負號的也去掉,因為錢總不能是負的吧.下面我們要加的是說明可能的小數部分:^[0-9]+(.[0-9]+)?$
20 5.必須說明的是,小數點后面至少應該有1位數,所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$
21 6.這樣我們規定小數點后面必須有兩位,如果你認為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$
22 7.這樣就允許用戶只寫一位小數.下面我們該考慮數字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
23 8.1到3個數字,后面跟著任意個 逗號+3個數字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
24 備注:這就是最終結果了,別忘了"+"可以用"*"替代如果你覺得空字符串也可以接受的話(奇怪,為什么?)最后,別忘了在用函數時去掉去掉那個反斜杠,一般的錯誤都在這里
25 xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
26 中文字符的正則表達式:[\u4e00-\u9fa5]
27 雙字節字符:[^\x00-\xff] (包括漢字在內,可以用來計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1))
28 空白行的正則表達式:\n\s*\r (可以用來刪除空白行)
29 HTML標記的正則表達式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (網上流傳的版本太糟糕,上面這個也僅僅能部分,對于復雜的嵌套標記依舊無能為力)
30 首尾空白字符的正則表達式:^\s*|\s*$或(^\s*)|(\s*$) (可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式)
31 騰訊QQ號:[1-9][0-9]{4,} (騰訊QQ號從10000開始)
32 中國郵政編碼:[1-9]\d{5}(?!\d) (中國郵政編碼為6位數字)
~~~
- 前言
- 一、js一些常用的校驗
- 1.1、校驗是否為空(null/空串)
- 1.2、校驗是否為純數字
- 1.3、校驗是否為純數字(正則)
- 1.4、檢驗手機號
- 1.5、驗證座機號
- 1.6、校驗ip
- 1.7、檢驗url地址
- 1.8、檢驗身份證
- 1.9、檢驗郵箱
- 1.10、檢驗日期
- 1.11、檢驗金額
- 1.12、檢驗否是漢字
- 1.13、校驗數字的表達式
- 1.14、校驗字符的表達式
- 1.15、特殊需求表達式
- 1.16、檢測密碼強度
- 二、手機類型判斷
- 三、返回字符串長度,漢子計數為2
- 四、獲取url中的參數
- 五、js 綁定事件 適用于任何瀏覽器的元素綁定
- 六、獲得當前瀏覽器JS的版本
- 七、獲取當前點擊事件的Object對象
- 八、字符串截取方法
- 九、JS 彈出新窗口全屏
- 十、全選/全不選
- 十一、js 判斷瀏覽器
- 十二、JS判斷兩個日期大小
- 十三、移除事件
- 十四、回車提交
- 十五、JS 執行計時器
- 十六、JS 寫Cookie
- 十七、JS 讀Cookie
- 十八、Ajax 請求
- 十九、JS StringBuilder 用法
- 二十、JS 加載到頂部LoadJS
- 二十一、清空 LoadJS 加載到頂部的js引用
- 二十二、JS 替換非法字符
- 二十三、按Ctrl + Entert 直接提交表單
- 二十四、獲取當前時間
- 二十五、Js 去掉空格方法
- 二十六、js 動態移除 head 里的 js 引用
- 二十七、整個URL 點擊事件 加在URL里的onclick里
- 二十八、判斷瀏覽器使用的是哪個 JS 版本
- 二十九、加入收藏夾
- 三十、動態加載 CSS 樣式文件
- 三十一、返回腳本內容
- 三十二、清除腳本內容
- 三十三、返回按ID檢索的元素對象
- 三十四、顯示元素 待驗證
- 三十五、與insertBefore方法(已存在)對應的insertAfter方法
- 三十六、光標停在文字的后面,文本框獲得焦點時調用
- 三十七、檢驗URL鏈接是否有效
- 三十八、格式化CSS樣式代碼
- 三十九、壓縮CSS樣式代碼
- 四十、 獲取當前路徑
- 四十一、ip 轉 整型
- 四十二、整型解析為IP地址
- 四十三、刪除cookies
- 四十四、判斷是否以某個字符串結束
- 四十五、判斷是否以某個字符串開頭
- 四十六、根據樣式名稱檢索元素對象
- 四十七、 獲取移動設備初始化大小
- 四十八、 獲取移動設備最大化大小
- 四十九、獲取移動設備屏幕寬度
- 五十、獲取頁面scrollLeft
- 六十、獲取頁面寬度
- 六十一、獲取頁面scrollTop
- 六十二、獲取頁面可視高度
- 六十三、判斷數組元素是否重復
- 六十四、生成隨機數
- 六十五、數組去重
- 六十六、深度拷貝對象
- 六十七、全部替換replaceAll
- 六十八、阻止冒泡
- 六十九、返回頂部
- 七十、jsonp跨域請求
- 七十一、到某一個時間的倒計時
- 七十二、清除對象中值為空的屬性
- 七十三、獲取文件后綴名的方法
- 七十四、判斷一個對象是不是數組類型
- 七十五、冒泡排序
- 七十六、實現一個最簡單的模板引擎
- 七十七、數組最大值最小值
- 七十八、數組求和,平均值
- 七十九、從數組中隨機獲取元素
- 八十、返回對應元素在數組中的下標
- 八十一、返回數組(字符串)一個元素出現的次數
- 八十二、得到n1-n2下標的數組,即返回數組下標arr[n1]到數組arr[n2]的值
- 八十三、篩選數組,這里所做的就只是刪除相應的數組
- 八十四、去除字符串空格
- 八十五、字母大小寫切換
- 八十六、字符串循環復制,前面的要循環的字符串,后面的要循環的次數
- 八十七、字符串替換,這里的要替換的字符串必須是連續的
- 八十九、將時間戳轉換成日期格式
- 九十、檢驗字符串是否超過某個值,超出出現省略號
- 九十一、隨機碼,這里的參數count必須是 2 ~ 36 之間的整數
- 九十二、查找字符串中某字符出現的次數
- 九十三、JS插入排序
- 九十四、獲取前num天的日期
- 九十五、js實時計算rem,寬度大于1920px時1rem=100px
- 九十六、原生JS獲取鼠標XY軸的值
- 九十七、轉成XML對象
- 九十八、Js身份證驗證函數
- 九十九、格式化數字串
- 一百、原生Ajax 請求
- 一百零一、兩條直角邊算角度
- 一百零二、禁止readonly和disabled的input退格鍵返回上一頁
- 一百零三、生成隨機字母字符串
- 一百零四、float偏移處理
- 一百零五、根據月份獲取起止時間戳
- 一百零六、工具函數對象書寫例子,可自己擴展
- 一百零七、js字符串壓縮算法與解壓
- 一百零八、指定數組元素排序(正序倒序)
- 一百零九、js所有的內置方法