成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

犀牛書——CHAP10:正則表達式

JessYanCoding / 2988人閱讀

摘要:設(shè)計目的是為了讓在全局范圍內(nèi)有效。在正則表達式后部引用前面的子表達式。傳入分隔符或正則表達式。對象屬性以下屬性返回布爾值。是否包含修飾符以下不返回布爾值整個字符串下一次搜索開始的位置。返回布爾值,若匹配則返回。

1. 正則表達式語法 1.1 表示方法
- `//`字面量模式,`/表達式/修飾符`
- 使用`new RegExp(字符串,修飾符 | 正則表達式)`構(gòu)造函數(shù)。
在ES5中,參數(shù)是正則表達式時不允許傳入第二個參數(shù)。
在ES6中,當(dāng)?shù)谝粋€參數(shù)為正則表達式是,可以傳入第二個參數(shù)修飾符,這時第二個參數(shù)的修飾符會覆蓋第一個參數(shù)正則表達式之中的修飾符。
1.2 字符類[]

[]:匹配[]中的任意字符

[^]:不在[]中的任意字符

.:除換行符或其他終止符之外的任意字符。
以下的大寫都是小寫的取反:

w:[a-zA-Z0-9]

W:[^a-zA-Z0-9]

s:任意unicode空白符

S:[^s]

d:[0-9]

D:[^0-9]

[]:退格

1.3 重復(fù)

{n,m}:出現(xiàn)n<= 次數(shù) <= m

{n,}: >=n 次

{n}: n次

? : {0,1}

+ : {1,}

* : {0,}

以上情況是盡可能多的匹配,稱為貪婪匹配.
在重復(fù)次數(shù)后面加上“?”,如“+?”則為盡可能少的匹配,稱為非貪婪匹配。

var r1 = /a+/
var r2 = /a+?/
var str = "aaa"

str.match(r1) //["aaa"]
str.match(r2) //["a"]
1.4 位置

^:匹配開頭

$:匹配結(jié)尾

:匹配一個單詞的邊界,注意與[]的區(qū)別

B:非單詞的邊界

/x(?=y)/:稱為“先行斷言”。只匹配在y前面的x.

/x(?!y)/:稱為“先行否定斷言”。只匹配在y前面的x.

1.5 修飾符

i:大小寫不敏感

g:全局匹配。即找到所有,而不是找到一個就停止。

y:(ES6新增)粘連修飾符。與g相似。但y下一次開始查找時從匹配的下一個位置開始,即如果下一個位置不匹配則返回null.而g只要剩余位置存在匹配即可。設(shè)計目的是為了讓^在全局范圍內(nèi)有效。

m:多行匹配。即匹配一行的開頭結(jié)尾 + 字符串的開頭或結(jié)尾

u:(ES6新增)。主要針對ES6對Unicode字符進行擴展之后的匹配。包括對.,{}中的改善。詳見阮一峰老師的ES6教程

1.6 選擇

|: 相當(dāng)于“或”。即/ab|cd/可以匹配“ab”,也可以匹配“cd”。但它從左至右匹配,直到發(fā)現(xiàn)匹配項。即若你以匹配“ab”,則不匹配“cd”.

1.7 分組/引用

圓括號的作用:

1. 即把很多項組合成獨立的單元來處理。
2. 定義子模式。即在已匹配中找到符合圓括號內(nèi)的匹配項。
3. 在正則表達式后部引用前面的子表達式。即后面可以使用`
`來表示匹配的表達式是前面的括號中的表達式.`
`中的n代表第幾個括號。

2. String的正則方法

search():傳入正則表達式,若傳入的是字符串,則會轉(zhuǎn)為正則表達式。返回第一次匹配項的起始位置。若不匹配,則返回-1.

replace():第一個參數(shù)可以是正則表達式也可以是字符串,第二個參數(shù)是要將與第一個參數(shù)匹配的匹配項替換的東西,可以是函數(shù)或字符串。若為函數(shù),則參數(shù)為macth,(p1,p2..),offset,str.match為匹配項,(p1,p2..)為第n個括號匹配的字符串,offset是匹配項在調(diào)用字符串中的位置,str是調(diào)用的字符串。若正則表達式中含//g,則會將全部匹配項都替換。返回替換后的字符串。

match():返回數(shù)組。若包含全局修飾符g,則數(shù)組元素分別為每次的匹配項。若為傳入g,則數(shù)組第一個元素是匹配項,后面分別為圓括號的匹配項。返回的數(shù)組包含inputindex屬性。input表示調(diào)用字符串,index表示匹配項在調(diào)用字符串中的索引。

split():返回數(shù)組。傳入分隔符或正則表達式。

3. RegExp對象 3.1 RegExp屬性

以下屬性返回布爾值。即是否包含相應(yīng)修飾符。

- `global`
- `multiline`
- `ignoreCase`
- `sticky`:是否包含`y`修飾符

以下不返回布爾值

- `lastIndex`:整個字符串下一次搜索開始的位置。
- `source`:正則表達式文本。
- `flags`:使用了哪些修飾符
3.2 RegExp方法

exec():傳入字符串。不管什么時候都返回與不傳入gmatch方法相同的數(shù)組。第2次調(diào)用該方法時會從lastIndex位置開始??梢栽O(shè)置lastIndex屬性執(zhí)行下一次開始查找匹配的位置。input表示調(diào)用字符串,index表示匹配項在調(diào)用字符串中的索引。

test():傳入字符串。返回布爾值,若匹配則返回true。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79833.html

相關(guān)文章

  • 犀牛——CHAP6:對象

    摘要:對象是屬性的無序集合。使用對象直接量創(chuàng)建的對象的原型就是,使用運算符創(chuàng)建的對象的原型是構(gòu)造函數(shù)的的值。主要目的是將對象鎖定,避免外界干擾。判斷對象是否封閉。刪除屬性可刪除對象的自有屬性且為的屬性。 對象是屬性的無序集合。因此,這一章主要從對象和屬性兩個方面來闡述。showImg(https://box.worktile.com/view/c8f5f376fe314aeca69d9b4c...

    philadelphia 評論0 收藏0
  • 犀牛——CHAP8:函數(shù)

    摘要:若有函數(shù)名,則在函數(shù)體內(nèi)指代該函數(shù)本身,并且只存在于函數(shù)體中。返回值與普通函數(shù)相同。如果嵌套函數(shù)作為普通函數(shù)調(diào)用,則指向全局對象或者構(gòu)造函數(shù)調(diào)用在函數(shù)或者方法調(diào)用之前使用關(guān)鍵字,則為構(gòu)造函數(shù)調(diào)用。創(chuàng)建一個新的對象繼承構(gòu)造函數(shù)的屬性。 showImg(https://box.worktile.com/view/ddbade8c84bb41cdb20db15228584b8e?pid=4b...

    he_xd 評論0 收藏0
  • 犀牛——CHAP7:數(shù)組

    摘要:數(shù)組有以下特點無類型數(shù)組元素可以是任意元素。因此,當(dāng)小于數(shù)組最大索引時,大于的數(shù)組元素會被刪除。原數(shù)組不會改變將數(shù)組元素轉(zhuǎn)換為字符串并連接在一起。默認將數(shù)組元素用,連接,傳入的參數(shù)即為連接符。 showImg(https://box.worktile.com/view/fcfcdf2c99b14edfb6768085955ae253?pid=4b0845b09ca94218a955f8...

    Alfred 評論0 收藏0
  • 《JavaScript權(quán)威指南》隨筆(一)

    摘要:每個構(gòu)造函數(shù)定義了一類對象,表示由構(gòu)造函數(shù)初始化對象的集合。嚴(yán)格模式下,明確禁止八進制數(shù)。日期和時間構(gòu)造函數(shù)用來創(chuàng)建表示日期和時間的對象,包含方法。模式匹配函數(shù)是一個構(gòu)造函數(shù),創(chuàng)建正則表達式。布爾值表示兩種狀態(tài),使用保留字和。 《Javascript權(quán)威指南》就是前端工程師口中常說的犀牛書,得名是因為中文翻譯出版的書籍封面是一只犀牛,是學(xué)習(xí)JavaScript的必讀書籍。 JavaSc...

    SwordFly 評論0 收藏0
  • Part1程序設(shè)計基礎(chǔ)(Java語言程序設(shè)計(10th))

    摘要:緣起這是語言程序設(shè)計的,計劃之前全部整理完。產(chǎn)生隨機數(shù)的方法。復(fù)習(xí)題雙分支語句復(fù)習(xí)題嵌套的語句和多分支語句復(fù)習(xí)題常見錯誤和陷阱常見錯誤兩個浮點數(shù)值的相等測試復(fù)習(xí)題產(chǎn)生隨機數(shù)產(chǎn)生一個到之間的隨機值,不包括。 緣起 這是《Java語言程序設(shè)計(10th)》的Part1,計劃2017-12-31之前全部整理完。 2017-12-23開始想看這本書的,并同時開始實踐起Java來的。 Part...

    BDEEFE 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<