摘要:設計目的是為了讓在全局范圍內有效。在正則表達式后部引用前面的子表達式。傳入分隔符或正則表達式。對象屬性以下屬性返回布爾值。是否包含修飾符以下不返回布爾值整個字符串下一次搜索開始的位置。返回布爾值,若匹配則返回。
1. 正則表達式語法 1.1 表示方法
- `//`字面量模式,`/表達式/修飾符` - 使用`new RegExp(字符串,修飾符 | 正則表達式)`構造函數。 在ES5中,參數是正則表達式時不允許傳入第二個參數。 在ES6中,當第一個參數為正則表達式是,可以傳入第二個參數修飾符,這時第二個參數的修飾符會覆蓋第一個參數正則表達式之中的修飾符。1.2 字符類[]
[]:匹配[]中的任意字符
[^]:不在[]中的任意字符
.:除換行符或其他終止符之外的任意字符。
以下的大寫都是小寫的取反:
w:[a-zA-Z0-9]
W:[^a-zA-Z0-9]
s:任意unicode空白符
S:[^s]
d:[0-9]
D:[^0-9]
[]:退格
1.3 重復{n,m}:出現n<= 次數 <= m
{n,}: >=n 次
{n}: n次
? : {0,1}
+ : {1,}
* : {0,}
以上情況是盡可能多的匹配,稱為貪婪匹配.
在重復次數后面加上“?”,如“+?”則為盡可能少的匹配,稱為非貪婪匹配。
var r1 = /a+/ var r2 = /a+?/ var str = "aaa" str.match(r1) //["aaa"] str.match(r2) //["a"]1.4 位置
^:匹配開頭
$:匹配結尾
:匹配一個單詞的邊界,注意與[]的區別
B:非單詞的邊界
/x(?=y)/:稱為“先行斷言”。只匹配在y前面的x.
/x(?!y)/:稱為“先行否定斷言”。只匹配不在y前面的x.
1.5 修飾符i:大小寫不敏感
g:全局匹配。即找到所有,而不是找到一個就停止。
y:(ES6新增)粘連修飾符。與g相似。但y下一次開始查找時從匹配的下一個位置開始,即如果下一個位置不匹配則返回null.而g只要剩余位置存在匹配即可。設計目的是為了讓^在全局范圍內有效。
m:多行匹配。即匹配一行的開頭結尾 + 字符串的開頭或結尾
u:(ES6新增)。主要針對ES6對Unicode字符進行擴展之后的匹配。包括對.,{}中的改善。詳見阮一峰老師的ES6教程
1.6 選擇|: 相當于“或”。即/ab|cd/可以匹配“ab”,也可以匹配“cd”。但它從左至右匹配,直到發現匹配項。即若你以匹配“ab”,則不匹配“cd”.
1.7 分組/引用圓括號的作用:
1. 即把很多項組合成獨立的單元來處理。 2. 定義子模式。即在已匹配中找到符合圓括號內的匹配項。 3. 在正則表達式后部引用前面的子表達式。即后面可以使用` `來表示匹配的表達式是前面的括號中的表達式.` `中的n代表第幾個括號。2. String的正則方法
search():傳入正則表達式,若傳入的是字符串,則會轉為正則表達式。返回第一次匹配項的起始位置。若不匹配,則返回-1.
replace():第一個參數可以是正則表達式也可以是字符串,第二個參數是要將與第一個參數匹配的匹配項替換的東西,可以是函數或字符串。若為函數,則參數為macth,(p1,p2..),offset,str.match為匹配項,(p1,p2..)為第n個括號匹配的字符串,offset是匹配項在調用字符串中的位置,str是調用的字符串。若正則表達式中含//g,則會將全部匹配項都替換。返回替換后的字符串。
match():返回數組。若包含全局修飾符g,則數組元素分別為每次的匹配項。若為傳入g,則數組第一個元素是匹配項,后面分別為圓括號的匹配項。返回的數組包含input和index屬性。input表示調用字符串,index表示匹配項在調用字符串中的索引。
split():返回數組。傳入分隔符或正則表達式。
3. RegExp對象 3.1 RegExp屬性以下屬性返回布爾值。即是否包含相應修飾符。
- `global` - `multiline` - `ignoreCase` - `sticky`:是否包含`y`修飾符
以下不返回布爾值
- `lastIndex`:整個字符串下一次搜索開始的位置。 - `source`:正則表達式文本。 - `flags`:使用了哪些修飾符3.2 RegExp方法
exec():傳入字符串。不管什么時候都返回與不傳入g的match方法相同的數組。第2次調用該方法時會從lastIndex位置開始??梢栽O置lastIndex屬性執行下一次開始查找匹配的位置。input表示調用字符串,index表示匹配項在調用字符串中的索引。
test():傳入字符串。返回布爾值,若匹配則返回true。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79833.html
摘要:對象是屬性的無序集合。使用對象直接量創建的對象的原型就是,使用運算符創建的對象的原型是構造函數的的值。主要目的是將對象鎖定,避免外界干擾。判斷對象是否封閉。刪除屬性可刪除對象的自有屬性且為的屬性。 對象是屬性的無序集合。因此,這一章主要從對象和屬性兩個方面來闡述。showImg(https://box.worktile.com/view/c8f5f376fe314aeca69d9b4c...
摘要:若有函數名,則在函數體內指代該函數本身,并且只存在于函數體中。返回值與普通函數相同。如果嵌套函數作為普通函數調用,則指向全局對象或者構造函數調用在函數或者方法調用之前使用關鍵字,則為構造函數調用。創建一個新的對象繼承構造函數的屬性。 showImg(https://box.worktile.com/view/ddbade8c84bb41cdb20db15228584b8e?pid=4b...
摘要:數組有以下特點無類型數組元素可以是任意元素。因此,當小于數組最大索引時,大于的數組元素會被刪除。原數組不會改變將數組元素轉換為字符串并連接在一起。默認將數組元素用,連接,傳入的參數即為連接符。 showImg(https://box.worktile.com/view/fcfcdf2c99b14edfb6768085955ae253?pid=4b0845b09ca94218a955f8...
摘要:每個構造函數定義了一類對象,表示由構造函數初始化對象的集合。嚴格模式下,明確禁止八進制數。日期和時間構造函數用來創建表示日期和時間的對象,包含方法。模式匹配函數是一個構造函數,創建正則表達式。布爾值表示兩種狀態,使用保留字和。 《Javascript權威指南》就是前端工程師口中常說的犀牛書,得名是因為中文翻譯出版的書籍封面是一只犀牛,是學習JavaScript的必讀書籍。 JavaSc...
摘要:緣起這是語言程序設計的,計劃之前全部整理完。產生隨機數的方法。復習題雙分支語句復習題嵌套的語句和多分支語句復習題常見錯誤和陷阱常見錯誤兩個浮點數值的相等測試復習題產生隨機數產生一個到之間的隨機值,不包括。 緣起 這是《Java語言程序設計(10th)》的Part1,計劃2017-12-31之前全部整理完。 2017-12-23開始想看這本書的,并同時開始實踐起Java來的。 Part...
閱讀 3063·2021-11-24 10:34
閱讀 3322·2021-11-22 13:53
閱讀 2630·2021-11-22 12:03
閱讀 3598·2021-09-26 09:47
閱讀 3005·2021-09-23 11:21
閱讀 4772·2021-09-22 15:08
閱讀 3290·2021-07-23 10:59
閱讀 1258·2019-08-29 18:31