js正則表達式學習

正則學習總結

修飾符

  • g全文搜索
  • i忽略大小寫
  • m多行搜索

元字符

原意文本字符是指123等, 元字符 是在正則表達式中有特殊含義的非字母字符正則表達式

* + > & $ . | \ ( ) { } [ ]學習

  • \t 水平製表符
  • \v 垂直製表符
  • \n換行符

字符類

符合某些特性的對象,一個泛指,而不是特指某個字符 可使用元字符[]構建一個簡單的類spa

例子: 3d

表達式[abc] 把字符a或b或c歸爲一類,表達式能夠匹配這類的字符, 若要匹配ab總體那就不用[]code

'a1b2c3d4'.replace(/[abc]/g, 'x') -> 'x1x2x3d4'對象

並非匹配abc一個總體blog

字符類取反

例子:圖片

使用元字符 ^在中括號[]建立反向類/負向類 ,另外一個意思是以xxx開始字符串

表達式1 把字符之外(不是字符a或b或c的內容)的進行替換 中括號裏面加 ^it

'a1b2c3d4'.replace(/[abc]/g, 'x') -> 'axbxcxxx'

範圍類

[0123456789]匹配數字 太累了

使用[a-z]鏈接兩個字符表示從a-z的任意字符 閉區間

-並非特殊字符 若要匹配2017-03中的- 只需[0-9-]

預約義類及邊界

圖片描述
圖片描述

量詞

圖片描述

正則貪婪模式

d{3,6} 12345678 => x78

正則表達式在處理的時候會盡量多的匹配,直到匹配失敗,默認是貪婪模式

正則非貪婪模式

儘量少的匹配,一旦成功匹配,再也不繼續嘗試
作法很簡單,在量詞後加上?便可
d{3,6}? 12345678 => xx78

分組

解決匹配總體的問題

圖片描述
使用()達到分組的功能,使量詞做用於分組
(byron){3}

使用|能夠達到或的效果,加了分組能夠改變邊界
圖片描述

反向引用

出現是變量,不是常量的概念替換, 利用$1 $2捕獲分組表明
圖片描述

忽略分組

不但願捕獲某些分組,只須要在分組內加上?:便可
圖片描述

前瞻

圖片描述
前瞻概念2
圖片描述

對象屬性

reg.objKey
圖片描述
當正則屢次執行test方法的時候,匹配的結果會記憶上次匹配的位置,再循環到0從新開始 也就是lastIndex
簡單解決方法是 正則不加g標誌 自己也就是爲了看下有沒有

正則方法

  • test
  • exec

字符串對象方法

  • search
    圖片描述
  • match
    圖片描述

圖片描述
圖片描述
圖片描述

  • split
    圖片描述
  • replace
    圖片描述

圖片描述


  1. abc
相關文章
相關標籤/搜索