Web--js高階--12月18日隨筆
一:
正則:RegExp
概念:用來檢驗字串的規則
如何使用: Var reg=/ / var reg=new RegExp()最後的本質都是一個例項物件。
方法:
test()匹配的方法 exec()捕獲的方法
二:修飾符:
i (忽略大小寫) m()代表多行匹配 g()代表全域性匹配
三:正則的方括號:
【abc】 代表查詢方括號中的任何字元
【^abc】代表查詢任何一個不在方括號之間的字元
【0-9】查詢0到9之間的數字
【a-z】查詢任何小寫a到小寫z的字元
【A-Z】查詢任何大寫A到大寫Z的字元
(red|blue|green)
元字元:
.代表單個字元
\w 代表單詞字元(數字,字母,下劃線)
\W代表非單詞字元
\d代表數字
\D代表非數字
\s代表空白字元
\S代表非空白字元
\b代表單詞邊界
\B代表非單詞邊界
量詞:
1. n+代表至少1個n的字元
2.n*代表0個或多個n
3.n?包含0個或1個n
4.N{X},包含x個n
5. N{x,} 包含至少x個nN{x,y}
6.N{x,y}包含大於等於x個小於等於y個n
7.N$ 包含以n結尾的字串^n包含以n開頭的字串
8.^n包含以n開頭的字串
9.?=n 指定字串後面緊跟的n的字串
四:正則的理解
(1) 正則的懶惰性
每一次在exec()中捕獲的時候,只捕獲一次匹配的內容,而不往下捕獲了。我們把這叫正則的懶惰性,每一次捕獲的開始位置都是從0開始
var reg/\d+/;
var st="hu1314miao521"
console.log(reg.exec(st))
解決正則的懶惰性:
加修飾符g(全域性匹配)
(2).正則的貪婪性:每一次匹配都是按照最長的出結果,我們把這種功能叫正則的貪婪性。
var reg=/\d+/;
var st=“hello2345”
console.log(reg.exec(st))
(3)正則的例項物件reg上有一個lastindex的屬性 他是正則捕獲的起始位置
var reg=/\d+/;
var st=“miao0110”
console.log(reg.exec(st))
在元字元量詞後面加?
var reg=/\d+?/g;
var st="hu01101201"
console.log(st.match(reg))
五:while語句:
var i=12; var n=12;
var sum=null var sun=null
while(i<10){ do{sun=sun+n n++;}
sum=sum+i while(n<11);
} console.log(sun)先執行,後判斷
console.log(sum)先判斷後執行
六:分組捕獲 正則帶()在陣列的個數是從左往右
var reg=/(a)(b)/就相當於大正則裡面帶了兩個小正則
第一組是(a)第二組是(b)
分組捕獲的作用
1.改變優先順序
2.分組引用 \1,\2
\2代表和第二個分組出現一模一樣的內容,\1代表和第一個分組出現一模一樣的內容
var reg=/(\w)\1(\w)\2/
var st=“ssdd”
var s=reg.test(st)
console.log(s)
Reg 中的規則是第一個是一個分組,且是一個單詞字元 第二個是個分組引用要求和第一組一模一樣,第三個是第二個分組,且是一個單詞字元,第四個是一個分組引用,要求和第二組一模一樣。
3.分組捕獲
分組的捕獲前提是正則存在分組,不僅把大正則的內容捕獲到,把小正則的內容也捕獲到。
var reg=/(a)(?:b)/
var st=“acsd”
console.log(reg.exec(st))