1.正則表達式的做用:javascript
1)正則表達式能夠對一個輸入的字符串進行測試,查看該輸入字符串是否符合要求的模式,好比電話或者郵箱。java
2)替換文本,能夠在文檔中使用一個正則表達式來表示特定的文字,而後用對象將其刪除或者替換別的文字正則表達式
3)匹配字符串中的子字符串,而後及逆行操做。數組
2.建立正則表達式的語法測試
1)spa
<script type="text/javascript"> var str= "aaabbbccc"; var reg = new RegExp(); //RegExp和Array同樣是一個對象,這樣沒有任何效果,須要將正則表達式做爲參數傳遞進去 reg = new RegExp("a","ig");//表示查找a,i表示不區分大小寫,g表示全文查找 </script>
2)做用等同於上面3d
reg = /"a"/ig;
3.正則表達式的屬性和對象code
1).test返回一個布爾類型的值,檢查所輸入的字符串是否存在,存在返回true,不存在返回false對象
1 var input = prompt("輸入一個六位數的密碼") 2 var reg = /^\d{6}&/ig; 3 var bool = reg.test(input); 4 console.log(bool);
2).execblog
提取指定字符串中的符合要求的子串(或者匹配模式),返回一個數組存放匹配結果;若是沒有,則返回null。
exec能夠說是test的升級版本,由於它不只能夠檢測,並且檢測到了能夠直接提取結果。
3)match,找到一個或多個正則表達式的匹配。
4)replace,替換與正則表達式匹配的子串。str = str.replace(/正則表達式/ig,"替換的值"),若是替換的值式空,就達到刪除的效果。
5)search,檢索與正則表達式相匹配的值。返回下標,找不到就返回-1
4.正則表達式預約義類
. 查找單個字符,除了換行和行結束符
\d 匹配一個數字類型
\w 匹配一個字母數字下劃線
\W 查找非單詞字符
\D 匹配一個非數字
\s 匹配一個空格
\S 查找非空白字符
\b 匹配單詞邊界
\B 匹配非單詞邊界
5.預約義字符
\n 換行符
\r 回車符
\t 製表符
\f 換頁符(Tab)
\b 退格符(BackSpace)
\v 垂直製表符
\0 空字符("")
6.量詞(理解)
* 匹配前面的子表達式零次或屢次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等價於{0,}。
+ 匹配前面的子表達式一次或屢次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 {1,},至少一次。
? 匹配前面的子表達式零次或一次。例如,"do(es)?" 能夠匹配 "do" 或 "does" 中的"do" 。? 等價於 {0,1},最多一次。
{min,max} 規定最少出現次數,和最多出現次數(能夠只寫一個)
^ 用來匹配字符串開頭
$ 用來匹配字符串結尾
7.屬性
正則表達式是嚴格區分大小寫的
i 加上去後不區分大小寫
g 全局匹配 找到了一個之後仍是會繼續接着找
m 多行匹配
lastIndex 爲一個整數 標示開始下一次匹配的字符位置。也叫做遊標,能夠獲取賦值
source 正則表達式的源文本
8.方括號[]表示匹配一個字符
[abcd] 表示匹配任意一個字符
[a-z] 匹配a到z的任意一個字符
[A-Z] 匹配A到Z的任意一個字符
[0-9] 匹配0到9的任意一個字符
[^] 表示取反
應用實例:
1.寫一個function,清楚字符串先後的空格
var hello =" hell o "; function reg(str){ str = str.replace(/(^\s*)|(\s*)$/g,"");//用正則表達式匹配到開頭的空格或者結尾的空格,
而後以「」空字符串代替 //其中^\s是以空格開頭,*是不限制次數, //\s* $是匹配不限制次數的以結尾的空格 console.log(str); } reg(hello);
2.試用正則表達式,驗證郵箱格式
function email(email){ var reg = /^\w+@\w+(\.\w{2,3}){1,2}$/g; console.log(reg.test(email_value)); } var email_value = "1231231313@qq.com"; email(email_value);