JavaScript基礎(12_正則表示式)
正則表示式
正則表示式
-
用於定義一些字串的規則
-
計算機可以根據正則表示式,來檢查一個字串是否符合規則
-
語法:
-
var 變數 = new RegExp("正則表示式", "匹配模式"); (更為靈活)
-
在建構函式中可以傳遞一個匹配模式作為第二引數
-
i = 忽略大小寫
-
g = 全域性匹配模式
-
var reg = new RegExp("需要匹配的文字", "i")
-
-
使用字面量建立正則表示式: var 變數 = /正則表示式/匹配模式 (更為簡單)
-
var reg = /a/i
-
-
-
正則中的test()方法
-
如果字串 string 中含有與 RegExpObject 匹配的文字,則返回 true,否則返回 false
-
嚴格區分大小寫
-
-
或者
-
使用 | 表示或者的意思
-
使用[] ,裡面的內容也是或的關係,如: [abc] = a或b或c
-
-
到
-
使用中橫線
-
表示任意小寫字母 [a-z]
-
表示任意大寫字母 [A-Z]
-
表示任意數字 [0-9]
-
表示abc 或者adc 或者 aec /a[bde]c/
-
-
除了
-
除了ab以外的
-
// 可以寫為[^ab]
-
-
基本用法
-
split()
-
可以將字串拆分為一個數字
-
可以傳遞一個正則表示式作為引數,這樣可以根據正則來拆分字串
-
這個方法即使不指定全域性匹配,也會全部拆分
-
var str = "1a2b3c4d5e6fGa9" var
-
-
match()
-
可以根據正則表示式,從一個字串中,將符合條件的內容提取查出來
-
預設情況下,match只會找到第一個符合要求的內容,找到後就停止檢索
-
可以設定正則為全域性匹配模式,這樣就可以匹配所有的內容了
-
將匹配到的內容封裝到陣列中能夠返回,即使僅僅匹配到一個
-
var str = "1a2b3c4d5e6fGa9" var reg1 = new
-
-
search()
-
如果搜尋到指定內容,則會返回第一次出現的索引
-
如果沒有搜到,則返回-1
-
可以接收一個正則作為引數,然後根據正則進行檢索
-
只會查詢第一個,不能全域性匹配
-
var str = "1a2b3c4d5e6fGa9" var reg1 = new RegExp("b","i") var reg2 = new RegExp("M","g") res1 = str.search(reg1) res2 = str.search(reg2) console.log(res1) //3 console.log(res2) //-1
-
-
replace()
-
可以搜尋字串中是否含有指定的內容替換為新的內容
-
引數
-
被替換的內容,可以接收一個正則表示式作為引數
-
新的內容
-
預設只會替換第一個
-
var str = "1a2b3c4d5e6fGa9" var reg1 = new RegExp("b","ig") var reg2 = new RegExp("[a-z]","ig") res1 = str.replace(reg1,"+") res2 = str.replace(reg2,"?") console.log(res1) //1a2+3c4d5e6fGa9 console.log(res2) //1?2?3?4?5?6???9
-
-
量詞
-
建立一個正則表示式,檢查一個字串中是否含有aaa
-
var reg1 = /aaa/
-
var reg2 = new RegExp("a{3}")
-
-
通過量詞可以設定一個內容連續出現的次數
-
{n} 正好連續出現n次
-
(ab){3}, 表示ab正好連續出現3次
-
{ab{1,3}c}, 表示b可以出現1次到3次
-
{ab{1,}c}, 表示b可以出現1次以上
-
+表示至少1個
-
"*"表示0個或者多個,相當於{0,}
-
? 表示0個或者1個,相當於{0,1}
-
^ 表示開頭,如/^a/ 表示以a開頭
-
$ 表示結尾,如/a$/ 表示以a結尾
-
-
案例
-
var phoneStr = "13567890123"; var reg = /^1[3-9][0-9]{9}$/; console.log(reg.test(phoneStr))
-
補充
-
"."
-
任意字元
-
-
\
-
轉譯字元
-
注意 使用建構函式時,由於他的引數是字串,而\是字串中轉譯字元
-
如果要使用\則需要使用\\代替
-
-
\w
-
表示任意字母、數字、下劃線
-
-
\W
-
表示出了任意字母、數字、下劃線
-
-
\d
-
表示任意數字
-
-
\D
-
表示除了數字
-
-
\s
-
表示空格
-
-
\S
-
表示除了空格
-
-
\b
-
單詞邊界
-
-
\B
-
除了單詞邊界
-
-
案例
-
// 檢查字串中是否含有. var reg = /\./; var str = prompt("輸入使用者名稱"); // 去除開頭和結尾的所有空格 console.log(str.replace(/^\s*|\s*$/g, ""));
-