一、什麼是正則表達式:所謂正則表達式也稱爲規則表達式,作用是用來校驗字符串是否符合規則要求,也可以用來檢索字符串中是否包含符合要求的子串。
二、正則表達式的創建
1. 利用構造方法創建
1) var 表達式名稱= new RegExp(”表達式”,”修飾符”);
2. 利用字面量的形式創建
1) var 表達式名稱= /表達式/修飾符;
三、正則表達式的常用方法
1. test
1) 作用:就是用來檢測字符串是否符合正則表達式
2) 格式:正則表達式.test(字符串);
3) 注意:如果匹配返回值爲true,否則返回值爲false
四、正則表達式中常用的構成元素
1. *:表示前面字符的個數爲0到正無窮
2. +:表示前面字符的個數爲1到正無窮
3. ?:表示前面字符的個數爲0到1個
4. {n}:表示前面字符的個數爲n個
5. {n,}:表示前面字符最少爲n個,最多爲正無窮
6. {n,m}:表示前面字符最少n個,最多m個
7. \:轉義字符,可以將普通字符賦予特定的功能和含義,如\n,也可以將特殊字符轉變爲普通字符,如\+
8. \d:表示所有的數字
9. \D:表示所有非數字
10. \w:表示所有的字符、數字、下劃線
11. \W:表示字母、數字、下劃線以外的所有字符
12. \s:表示所有的空白符
13. \S:表示所有的非空白符
14. .:表示除了\n之外的任意字符
15. [],主要有以下幾種形式
1) [值1值2值3]:表示字符串中包含值1或值2或值3
2) [值1-值2]:表示值1到值2間的任意字符,如[1-9]表示1-9間的任意數字
3) [^值1值2值3]:表示字符串中不包含值1值2值3
4) [\u4e00-\u9fa5]:表示任意的一個漢字
16. |:表示或者的意思,格式值1|值2
17. ^:表示以某個字符開頭,如^a,表示以a開頭
18. $:表示以某個字符結尾,如a$,表示以a作結尾,如果正則表達式中/^a$/,那麼表示字符串必須是以a開頭,且以a結尾,且個數爲1個,如果不寫^和$表示包含,如/a/表示字符串中包含a即可
19. ():表示分組
五、常用的修飾符
1. i:表示忽略大小寫
2. g:表示全局匹配
3. gi:既忽略大小寫,也全局匹配
例題:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
// 1.郵政編碼:由6個數字構成,第一位不可以是0
var reg =/^[1-9]\d{5}$/;
// 2.手機號碼:由13/15/17/18開頭的11位數字
var red =/^13[578]\d{8}$/;
// 3.QQ號:第一位不可以是0,位數在5-12位的數字構成
var reg = /^[1-9]\d{4,11}$/;
// 4.檢查是否是壓縮文件:文件名由字母、數字、下劃線構成,不可以以數字開頭,後綴爲.zip/rar/gz
var reg =/^[a-zA-Z_]\w*\.(zip|rar|gz)$/
// 5.電子郵件:格式爲[email protected]/cn/net/com.cn/edu/gov
var reg =/^\S+@\S+\.(com|cn|net|com\.cn|edu|gov)$/
// 6.網址:格式爲http://xxxxxx.xxxxxxx.com/cn/com.cn/net/edu/gov
var reg =/^http:\/\/\w+\.\w+\.(com|cn|net|com\.cn|edu|gov)$/
// 7.密碼:字母、數字、下劃線構成,6-20位
var reg =/^\w{6,20}$/;
// 8.用戶名:字母、數字、下劃線構成,6-16位,不能以數字開頭
var reg =/^[a-zA-Z_]\w{5,15}$/;
// 9.中文名字:三個漢字、中間必須是小或曉【[\u4e00-\u9fa5]表示任意一個漢字】
var reg =/^[\u4e00-\u9fa5](小|曉)[\u4e00-\u9fa5]$/
// 10.輸入年齡:只能在18-40間
var reg =/^1[89]$|^40$|^[23][0-9]$/
// 11.身份證號碼:15或18位,如果是15位則全部爲數字,如果是18位,前17位爲數字,第18位爲數字或字母x,字母不區分大小寫
var reg = /^\d{15}$|^\d{17}[\dx]$/i;
var str = "12345678901234561X";
var res = reg.test(str);
console.log(res);
</script>
</body>
</html>