- 正則表達(dá)式
- 正則表達(dá)式定義的方式
- 正則表達(dá)式使用方法
- 特殊屬性 i/g/m
- 特殊字符
- RegExp對(duì)象屬性
- RegExp對(duì)象方法
- 字符串方法
- 相關(guān)面試題
正則表達(dá)式
正則表達(dá)式就是一個(gè)表達(dá)式,用來查找一個(gè)有指定【特點(diǎn)】的表達(dá)式棍矛,規(guī)則匹配的安疗。
正則表達(dá)式定義的方式
var reg = /abc/;
var reg = new RegExp('abc');
正則表達(dá)式使用方法
reg.test(str);
str.match(reg);
特殊屬性 i/g/m
g代表的是global全局匹配
i代表ignoreCase忽略大小寫,
m代表multiline多行匹配够委,
特殊字符
具有特殊含義的字符荐类。
\ 轉(zhuǎn)義字符
| 或
方括號(hào)
[abc] 查找方括號(hào)內(nèi)的任意一個(gè)字符
[^abc] 查找任何不在方括號(hào)內(nèi)的字符
[0-9] 查找0-9之間的數(shù)字
[a-z] 查找任何小寫字母
[A-Z] 查找任何大寫字母
[A-z] 查找任何字母
(red|blue|green) 查找指定字符串(子表達(dá)式)
元字符
. 查找單個(gè)字符,除了換行和行結(jié)束符茁帽。
\w 查找單詞字符(匹配字母玉罐、數(shù)字、下劃線潘拨。等價(jià)于'[A-Za-z0-9_]')
\W 查找非單詞字符
\d 查找數(shù)字
\D 查找非數(shù)字
\s 查找空白字符
\S 查找非空白字符
\b 查找單詞邊界
\B 查找非單詞邊界
\n 查找換行符
\f 查找換頁(yè)符
\r 查找回車符
\t 查找制表符
\v 查找垂直制表符
\uxxx 查找以十六位進(jìn)制數(shù)xxxx規(guī)定的Unicode字符
[\u4e00-\u9fa5] 所有中文字符
量詞
以下均遵循貪婪匹配:
n+ 匹配任何包含至少一個(gè)n的字符
n* 匹配任何包含0個(gè)或多個(gè)n的字符
n? 匹配任何0個(gè)或一個(gè)n的字符
n{X} 匹配X個(gè)n的序列字符串
n{X,Y} 匹配X至Y個(gè)n的序列字符串
n$ 匹配以n結(jié)尾的字符串
^n 匹配任何以n開頭的字符串
?=n 正向肯定預(yù)查匹配任何后面緊接著指定字符串n的字符串
?!n 正向否定預(yù)查匹配任何其后沒有緊接著指定字符串n的字符串
?<=n 反向肯定預(yù)查匹配任何前面緊跟著指定字符串n的字符串
?<!n 反向否定預(yù)查匹配任何前面沒有緊接著指定字符串n的字符串
非貪婪匹配:
n+? n*? ...
補(bǔ)充
(?:n) 匹配時(shí)子表達(dá)式中沒有這一項(xiàng)(不補(bǔ)獲分組)
RegExp對(duì)象屬性
global 查看RegExp對(duì)象是否具有g(shù)標(biāo)志
ignoreCase 查看RegExp對(duì)象是否具有i標(biāo)志
multiline 查看RegExp對(duì)象是否具有m標(biāo)志
source 查看正則表達(dá)式源文本
lastIndex 一個(gè)整數(shù)標(biāo)志開始下一次匹配的字符位置(一般與exec一起使用)
RegExp對(duì)象方法
compile 編譯正則表達(dá)式吊输。 (就是改變這個(gè)正則表達(dá)式)
exec 檢索字符串中指定的值。返回找到的值铁追,并確定其位置季蚂。
test 檢索字符串中指定的值。返回 true 或 false脂信。
字符串方法
search 檢索正則表達(dá)式相匹配的值
match 查找所有符合正則匹配條件的結(jié)果
replace 替換與正則表達(dá)式匹配的字符串
split 把字符串分割成數(shù)組(注: 用字表達(dá)式分割的話會(huì)保留子表達(dá)式)
相關(guān)面試題
- 正則表達(dá)式實(shí)現(xiàn)aabb的形式變成bbaa
- 給10000000000三位打點(diǎn) 變成 10.000.000.000
- 字符串去重 aaaaaaaaaaaaaaaaaaaaaabbbbbbbbcccccccccc變成abc
- 把the-first-name轉(zhuǎn)換成小駝峰式theFirstName
- 匹配結(jié)尾的數(shù)字
- 統(tǒng)一空格數(shù)
- 判斷字符串是不是由數(shù)字構(gòu)成
- 刪除字符串中的空格
- 身份證號(hào)匹配