正則表達(dá)式
英文全稱:regular expression(正則表達(dá)式)? 簡(jiǎn)稱:RegExp
正則表達(dá)式是用來(lái)處理字符串的規(guī)則
它只能用來(lái)處理字符串
它是一個(gè)規(guī)則:可以驗(yàn)證字符串是否符合某個(gè)規(guī)則
(例如:驗(yàn)證這個(gè)字符串??"2020揚(yáng)帆起航"? 中是否包含數(shù)字)
也可以把字符串中符合規(guī)則的內(nèi)容捕獲到(通過(guò)正則對(duì)象的方法:exec 或者字符串的原型方法:match...)
編寫正則表達(dá)式
創(chuàng)建正則的方式有兩種
正則表達(dá)式由兩部分組成
? ??元字符
? ??修飾符
常用的元字符
1.量詞元字符:設(shè)置出現(xiàn)的次數(shù)
* ????????零到多次
+ ????????一到多次
? ????????零次或一次
{n}? ?????出現(xiàn)n次
{n,}? ? ? 出現(xiàn)n到多次
{n,m}? ?出現(xiàn)n到m次
2.特殊元字符:?jiǎn)蝹€(gè)或者組合在一起代表特殊的含義
\ ????????轉(zhuǎn)義字符(普通->特殊->普通)
. ????????除了\n(換行符)以外的任意字符
^? ? ? ? 以哪一個(gè)元字符作為開始
$? ? ? ? 以哪一個(gè)元字符作為結(jié)束
\n? ? ? ?換行符
\d? ? ? ?0-9之間的一個(gè)數(shù)字
\D? ? ? ?非數(shù)字(大寫和小寫的意思是相反的)
\w? ? ? ?數(shù)字纷责、字母琳猫、下劃線中的任意一個(gè)字符
\s? ? ? ? 一個(gè)空白字符(包含空格竭讳、制表符、換頁(yè)符等)
\t ????????一個(gè)制表符(一個(gè)tab鍵:四個(gè)空格)
\b? ? ? ? 匹配一個(gè)單詞邊界
x|y? ? ? ?x或者y中的一個(gè)字符
[xyz]? ? x或者y或者z中的一個(gè)字符
[^xy]? ? 除了x/y以外的任意字符
[a-z]? ? 指定a-z這個(gè)范圍中的任意字符 [0-9a-zA-Z] === \w
[^a-z]? ?上一個(gè)的取反'非'
()? ? ? ? ?正則中的分組符號(hào)
(?:)? ? ? 只匹配不捕獲
(?=)? ? ?正向預(yù)查
(?!)? ? ? 負(fù)向預(yù)查
3.普通元字符:代表本身含義的
/zhanchujin/? ?此正則匹配的就是"zhanchujin"這些字母
正則表達(dá)式常用的修飾符:img
i? ? ? ?ignoreCase(忽略)? ? 忽略單詞大小寫匹配
m ????multiline(多行)? ?可以進(jìn)行多行匹配
g? ????global(全局)? ?全局匹配
元字符詳細(xì)解析
^ $
\ 轉(zhuǎn)義符
x|y?
[]
常用的正則表達(dá)式
1.驗(yàn)證是否為有效數(shù)字
2.驗(yàn)證密碼
3.驗(yàn)證真實(shí)姓名
4.驗(yàn)證郵箱
5.身份證號(hào)碼
正則兩種創(chuàng)建方式的區(qū)別
正則的捕獲
實(shí)現(xiàn)正則捕獲的方法
正則RegExp.prototype上的方法
????exec
????test
字符串String.prototype上支持正則表達(dá)式處理的方法
????replace
????match
????splite
????......
懶惰性的解決辦法
正則的分組捕獲
正則捕獲的貪婪性
問(wèn)號(hào)在正則中的五大作用
????????問(wèn)號(hào)左邊是非量詞元字符:本身代表量詞元字符,出現(xiàn)零到一次
????????問(wèn)號(hào)左邊是量詞元字符:取消捕獲時(shí)候的貪婪性
????????(?:)只匹配不捕獲
????????(?=)正向預(yù)查
????????(?!)負(fù)向預(yù)查
其他正則捕獲的方法
1.test也能捕獲(本意是匹配)
2.replace 字符串中實(shí)現(xiàn)替換的方法(一般都是伴隨正則一起使用的)
案例:把時(shí)間字符串進(jìn)行處理
單詞首字母大寫
驗(yàn)證一個(gè)字符串中哪個(gè)字母出現(xiàn)的次數(shù)最多,多少次艰躺?
字符串原型對(duì)象上封裝幾個(gè)方法
? ? - 時(shí)間字符串處理
? ? - 獲取URL地址問(wèn)號(hào)后面的參數(shù)信息(可能也包含HASH值)
? ? - 實(shí)現(xiàn)大數(shù)字的千分符處理