複習正則

正則這個東西,說經常使用也不經常使用,用到的時候百度一波也夠了。早以前對正則還算熟悉,到了後來幾乎忘光了。今天從新學一下簡單的正則。vue

正則主要是用來匹配某一個規則的字符串,能夠提取和判斷。好比最經常使用的郵箱、電話號碼的正則,好比去除先後空格的正則。webpack

JavaScript有一個正則構造函數RegExp,接收兩個參數:web

new RegExp(pattern, attributes);正則表達式

pattern表示匹配的規則,attributes是可選的,包含屬性 "g"、"i" 和 "m":函數

i表示不區分大小寫:.net

var reg = new RegExp('a');cdn

console.log(reg.test('abc'));//true對象

console.log(reg.test('Abc'));//falseip

var reg = new RegExp('a', 'i');文檔

console.log(reg.test('abc'));//true

console.log(reg.test('Abc'));//true

g表示全局匹配,會全局匹配,而不是找到第一個就返回:

var reg = new RegExp('a');

console.log('abca'.replace(reg, 'd'));//dbca

var reg = new RegExp('a', 'g');

console.log('abca'.replace(reg, 'd'));//dbcd

m這個幾乎不常見,表示多行匹配,做用是修改^的做用。默認狀態下,一個字符串只有一個開頭^和一個結尾,若是採用多行匹配,那麼每個行都有一個^合$:

var reg = new RegExp('^a');

console.log(reg.test('bc\nabc'));//false

var reg = new RegExp('^a', 'm');

console.log(reg.test('bc\nabc'));//true

var reg = new RegExp('a$');

console.log(reg.test('bca\nbc'));//false

var reg = new RegExp('a$', 'm');

console.log(reg.test('bca\nbc'));//true

正則表達式有兩種建立語法:

建立對象法:

var reg = new RegExp();

直接量語法:

var reg = //;

兩種方法的使用和格式沒有什麼區別,直接量法會更簡便。

好比匹配1開頭,第二位是2-9,總共11位:

var reg = /^1[2-9]{1}[0-9]{9}/g

console.log(reg.test(15555555555));//true

方括號[]表示集合,大括號{}表示個數。g全局匹配可選。

[0-9]表示0到9

[a-z]表示小寫的字母a到z

[A-Z]表示大寫的A到Z

[A-z]表示a到z的全部大小寫

[abc]方括號裏面的任意一個字符

[^a]除了方括號內的字符其餘的任意字符

在方括號內還能使用&|

元字符:

正則裏面有不少元字符,好比\d表示全部的數字,\S表示全部的非空格字符,\n表示換行符,\r表示回車符等等。

量詞:

大於5個var reg = /[0-9]5+/

等於5個var reg = /[0-9]{5}/

5到9個var reg = /[0-9]{}{5,,9}/

量詞還有不少,這只是最簡單的幾個。

屬性:

global:是否有全局標誌g

IgnoreCase:是否有標誌i

Multiline:是否有標誌m

lastIndex:整數,開始匹配字符位置

Source:表達式源文本

方法:

正則對象上只有三個方法,咱們通常只用test,返回true或false,表示是否符合表達式的規則。

特殊字符:

好比^和$表示開頭和結尾,想要使用就要轉義^和$。好比咱們webpack配置loader,以.vue結尾:/.vue/,就須要把.轉義。特殊字符也有好幾個。

正則還有很重要的做用就是支持正則的string對象的方法:

Search、match、replace、split。

好比經常使用的去除空格:

var reg = /\s/g

console.log('a b c d '.replace(reg, '-'));//a-b-c-d-

其實正則最主要就是知道匹配模式igm,限制個數的量詞{},集合的方括號[],開頭^和結尾$知道了這幾個就能寫出不少簡單的正則。至於其餘的特殊字符、元字符等有想要了解的能夠看看文檔。

相關文章
相關標籤/搜索