javascript正則表達式小結

總結了一下javascript正則表達式的內容。表格形式,一目瞭然。輔以Example圖形解釋。javascript

1、元字符

clipboard.png

2、反義字符

clipboard.png

3、轉義字符

clipboard.png

4、重複匹配

clipboard.png

5、分組/捕獲

clipboard.png

6、貪婪與惰性

clipboard.png

7、修飾符

clipboard.png

example

  • 匹配開頭爲11N, 12N或1NNN,後面是-7-8個數字的電話號碼。java

clipboard.png

推薦一個圖形化表示正則的工具
https://regexper.com正則表達式

將上個例子翻譯爲圖形化表示以下:數組

clipboard.png

  • 解釋一下這個正則的意思工具

/(?:([^:;\(\[]*):)?(.*)/

首先 (?:...)?(.*) 看最外邊的兩個括號,第一個是非捕獲型括號,? 號做用於這個括號。第二個括號是捕獲型的,而且匹配多個任意字符。測試

而後,([^:;([]*): 這是一個捕獲型括號和一個字符 : 號spa

[^:;([]* 捕獲型括號中又包含一個字符組([]) 與一個 * 號,字符組中匹配多個除了 ; ( [ 的字符翻譯

clipboard.png

再來一個code

/(^\s*)|(\s*$)/g

clipboard.png

  • 用js實現一個電話號碼提取的方法。regexp

例如:」 1852145998 020-888-999845 測試 021 – 85421987, 19865754″獲得的結果應該是[1852145998, 020-888-999845 , 021 – 85421987, 19865754]

var str=" 1852145998 020-888-999845 測試 021  -  85421987, 19865754";
var reg=/(1\d+)|(0[0-9\s\-]+)/g;
console.log(str.match(reg));

clipboard.png

正則方法:

.test(字符串):返回一個布爾值,表示傳入的字符串是否匹配該正則(從lastIndex屬性指示的地方開始)

.exec(字符串):返回一個包含了匹配結果的數組(額外具備兩個屬性:input表示本次搜索的目標字符串,即傳入exec方法的參數;index表示匹配結果在目標字符串內的位置)或null(匹配不到)。即便正則添加了g選項,也要經過屢次調用同一正則對象的該方法來繼續搜索(每次搜索會從lastIndex屬性指示的地方繼續。若已完成搜索,則lastIndex會被自動置0)。若未添加g選項,則調用幾回都是同樣的結果。若未找到匹配項則返回null,且將正則對象的lastIndex自動置爲0

字符串對象的有關方法:

字符串.match()
字符串.search()
字符串.split()
字符串.replace()

更多能夠參考高設Regexp一章。

相關文章
相關標籤/搜索