js正則表達式速查

正則表達式

若是你想記住js正則表達式,來收藏一下說不定會多看幾遍呢,感謝您的支持呀javascript

字面量語法

字符 匹配
字母或數字 自身
\0 表示空字符,null,等價\u0000
\t 表示製表符 \u0009
\n 表示換行符 \u000A
\v 表示垂直製表符
\f 表示換頁符
\r 表示回車符
\xnn 有十六進制數表示escape字符數
\uxxxx 十六進制的Unicode
\xxx 八進制字符

以上正則表達式爲基本的字面量語法,漢字的範圍:/^[\u4e00 - \u9fa5]+$/java

修飾符

字符 匹配
g 全局匹配
i 忽略大小寫
m 多行匹配

閱讀以上內容咱們正式來看看正則表達式還有哪些語法正則表達式


範圍類

範圍類是表示能夠匹配必定範圍內的字符好比**[a-z]、[0-9]**app

"2016-09-01".replace(/[0-9]/g,"A") //AAAA-AA-AA
複製代碼

預約義類

正則表達式爲了方便也提供了一些預約義類:this

字符 等價類 匹配
. [^\r\n] 除了回車換行
\d [0-9] 數字字符
\D [^0-9] 非數字字符
\s [\t\n\x0B\f\r] 空白符
\S [^\t\n\x0B\f\r] 非空白符
\w [a-zA-Z0-9_] 字母數字下劃線
\W [^a-zA-Z0-9_] 非字母數字下劃線

預約義類提供了比較經常使用的類spa

邊界

字符 匹配
^ 以XXX開頭
$ 以XXX結尾
\b 單詞邊界
\B 非單詞邊界

對於單詞邊界的解釋: 1.當咱們要將字符串'this is a apple'中is替換爲字母A應該怎麼作呢?code

//1.首先咱們來嘗試一下
'this is a apple'.replace(/is/g,'A'); //輸出"thA A a apple"
//2.只有單詞旁邊有空格纔會被替換??因而
'this is a apple'.replace(/\sis\s/g,'A'); //輸出"thisAa apple"
//3.來試試單詞邊界
'this is a apple'.replace(/\bis\b/g,'A'); //輸出"this A a apple"
//4若是咱們想改變this中的is呢?
'this is a apple'.replace(/\Bis\b/g,'A');//輸出"thA is a apple"
複製代碼

量詞

字符 匹配
最多一次
+ 至少一次
* 任意次
{n} n次
{n,m} n到m次
{n,} 至少n次

貪婪模式與非貪婪模式

正則表達式默認是按照儘量多的匹配:regexp

'12345678'.replace(/\d{3,6}/g,'A');//A78
//若改成非貪婪模式只須要將量詞後加上?
'12345678'.replace(/\d{3,6}?/g,'A')//AA78
複製代碼

分組

當你要匹配一個單詞匹配三次怎麼用呢?ip

'hellohellohellohello'.replace(/(hello){2}/g,'A')//Ahello
複製代碼

'hello'.replace(/hello|world/g,'A')
hello或者world而不是o或w
'helloorldhellworld'.replace(/hell(o|w)orld/g,'A')//AA
複製代碼

反向引用

假定一個需求:YYYY-MM-DD替換爲DD-MM-YYYY字符串

'2010-09-08'.replace(/(\d{4})-(\d{2})-(\d{2})/,'$3/$2/$1');
$n表示的是第幾個分組
複製代碼

忽略引用

在分組裏面加上?:

'2010-09-08'.replace(/(?:\d{4})-(\d{2})-(\d{2})/,'$3/$2/$1');
//"$3/08/09"
$3不存才了
複製代碼

前瞻與後顧

先來看看這張表

名稱 正則 匹配
正向前瞻 exp(?=assert)
負向前瞻 exp(?=assert)
正向後顧 exp(?=assert) js不支持
負向向後顧 exp(?=assert) js不支持

因爲js不支持因此不予介紹了 前瞻:js從文本頭向尾部解析,文本尾部叫作"前" 來看以前的一個列子 'this is a apple'將is替換爲A

'this is a apple'.replace(/is(?=\sa)/g,'A'); 
//輸出"this A a apple"
複製代碼

正則表達式屬性與方法

  • 屬性
  1. globle:全局匹配
  2. ignoreCase:忽略大小寫
  3. mutiline:多行匹配
  4. lastIndex:當前匹配字符最後一個字符的下一個的位置
  5. soure:正則表達式文本字符串
  • 方法
  1. test他會從lastIndex開始匹配
  2. exec
相關文章
相關標籤/搜索