正則表達式常用知識點以及一些小練習Reg

# 正則表達式

 

正則表達式就是一個表達式,用來查找一個有指定【特點】的表達式,規則匹配的。

 

# 正則表達式定義的方式

```

var reg = /abc/;

var reg = new RegExp('abc');

推薦使用字面量的方式,如同數組和對象一樣,推薦使用字面量的創建方式

#  正則表達式使用方法

```

reg.test(str);

str.match(reg);

# 特殊屬性  i/g/m

 

g代表的是global全局匹配

 

i代表ignoreCase忽略大小寫,

 

m代表multiline多行匹配,

 

# 特殊字符

 

具有特殊含義的字符。

\   轉義字符

|   或

 

## 方括號  

```

[abc]  查找方括號內的任意一個字符

[^abc]   查找任何不在方括號內的字符

[0-9]  查找0-9之間的數字

[a-z]  查找任何小寫字母

[A-Z]  查找任何大寫字母

[A-z]  查找任何字母

(red|blue|green)  查找指定字符串(子表達式)

 

## 元字符

```

.       查找單個字符,除了換行和行結束符。

\w      查找單詞字符

\W      查找非單詞字符

\d      查找數字

\D      查找非數字

\s      查找空白字符

\S      查找非空白字符

\b      查找單詞邊界

\B      查找非單詞邊界

\n      查找換行符

\f      查找換頁符

\r      查找回車符

\t      查找製表符

\v      查找垂直製表符

\uxxx   查找以十六位進制數xxxx規定的Unicode字符

## 量詞

 

以下均遵循貪婪匹配:

 

n+      匹配任何包含至少一個n的字符

n*      匹配任何包含0個或多個n的字符

n?      匹配任何0個或一個n的字符

n{X}    匹配X個n的序列字符串

n{X,Y}  匹配X至Y個n的序列字符串

n$      匹配以n結尾的字符串

^n      匹配任何以n開頭的字符串

?=n     匹配任何後面緊接着指定字符串n的字符串

?!n     匹配任何其後沒有緊接着指定字符串n的字符串

 

非貪婪匹配:

n+?    n*? ...

## 補充

```

(?:n)   匹配時子表達式中沒有這一項(不補獲分組)

# RegExp對象屬性

global      查看RegExp對象是否具有g標誌

ignoreCase  查看RegExp對象是否具有i標誌

multiline   查看RegExp對象是否具有m標誌

source      查看正則表達式源文本

lastIndex   一個整數標誌開始下一次匹配的字符位置(一般與exec一起使用)

 

# RegExp對象方法

compile    編譯正則表達式。 (就是改變這個正則表達式)

exec       檢索字符串中指定的值。返回找到的值,並確定其位置。

test        檢索字符串中指定的值。返回 true 或 false。

# 字符串方法

search          檢索正則表達式相匹配的值

match           查找所有符合正則匹配條件的結果

replace         替換與正則表達式匹配的字符串

split           把字符串分割成數組(注: 用字表達式分割的話會保留子表達式)

 

```

 

 1.  正則表達式實現aabb的形式變成bbaa

 2.  給10000000000三位打點 變成 10.000.000.000

 3.  字符串去重 aaaaaaaaaaaaaaaaaaaaaabbbbbbbbcccccccccc變成abc

 4.  把the-first-name轉換成小駝峯式theFirstName

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章