正規表示式學習筆記(5)- ES6新增及參考連結
注:摘自阮一峰老師的《ECMAScript 6 入門》
5. ES6新增
- 建構函式可以新增第二個規則引數
// es5新增第二個引數時會報錯
var regex = new RegExp(/test/, 'i');
// es6
var regex = new RegExp(/test/, 'ig');
regex.flags; // ig
- 新增了
u
修飾符,含義為"Unicode"模式,用來正確處理大於uFFFF
的Unicode字元。
// uD83DuDC2A會被es5認為是兩個字元,加了u之後就會被認定為一個字元
/^uD83D/u.test('uD83DuDC2A'); // false
/^uD83D/.test('uD83DuDC2A'); // true
u
字元對正規表示式行為造成的影響,具體參考阮一峰的
- 新增了
y
修飾符(粘連修飾符),全域性匹配,但必須從剩餘字串的第一個位置進行匹配。
var str = 'aaa_aa_a',
reg1 = /a+/g,
reg2 = /a+/y;
reg1.exec(str); // aaa
reg2.exec(str); // aaa
reg1.exec(str); // aa
// 第二次執為null,是因為剩餘字串為_aa_a,必須從頭部開始匹配,因此沒有匹配到規則`a+`
// 若將reg1和reg2修改為`/a+_/g`和/a+_/y,結果將相同
reg2.exec(str); // null
- 增加了RegExp例項屬性
sticky
,表示是否設定了y
標誌
var r = /test/y;
r.sticky; // true
- 增加了RegExp例項屬性
flags
,表示正規表示式的修飾符
var r = /test/ig;
r.flags; // gi
- 建構函式增加方法
RegExp.escape()
,表示對字串轉義,用於正則模式
RegExp.escape('The Quick Brown Fox');
// "The Quick Brown Fox"
RegExp.escape('Buy it. use it. break it. fix it.');
// "Buy it. use it. break it. fix it."
RegExp.escape('(*.*)');
// "(*.*)"
- 增加修飾符
s
,可以使得.
可以匹配任意單個字元,包括行終止符(n,r,U+2018,U+2029)
const re = /foo.bar/s;
// 另一種寫法
// const re = new RegExp('foo.bar', 's');
re.test('foonbar') // true
re.dotAll // true
re.flags // 's'
-
支援後行斷言,具體參看所講
- Unicode屬性類
目前,有一個提案,引入了一種新的類的寫法p{...}和P{...},允許正規表示式匹配符合Unicode某種屬性的所有字元。
// 匹配所有數字
const regex = /^p{Number}+$/u;
regex.test('²³¹¼½¾') // true
regex.test('㉛㉜㉝') // true
regex.test('ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ') // true
6. 參考資料
- 書籍
《JavaScript Ninja》
《JavaScript高階程式設計(第三版)》
《JavaScript權威指南》
- 連結
http://blog.csdn.net/u012047933/article/details/38365541
http://www.cnblogs.com/iyangyuan/archive/2013/05/30/3107390.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2471/viewspace-2798677/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 正規表示式學習筆記筆記
- Python學習筆記 - 正規表示式Python筆記
- JavaScript正規表示式學習筆記(一)JavaScript筆記
- Python學習筆記|Python之正規表示式Python筆記
- js加固之正規表示式學習筆記JS筆記
- python 中的正規表示式學習筆記Python筆記
- 正規表示式學習筆記(1)-認識正則筆記
- 工作學習筆記(二) 正規表示式(轉載)筆記
- JavaScript正規表示式學習筆記(二) - 打怪升級JavaScript筆記
- Day1-學習筆記-js之正規表示式筆記JS
- python爬蟲學習筆記4-正規表示式Python爬蟲筆記
- 正規表示式速查筆記筆記
- 提取超連結正規表示式
- JS筆記(15): 正規表示式JS筆記
- Go 正規表示式學習Go
- 匹配磁力連結的正規表示式
- JavaScript正規表示式迷你書-筆記JavaScript筆記
- Python筆記五之正規表示式Python筆記
- 正規表示式學習和練習
- 《正規表示式必知必會》學習筆記以及示例文件筆記
- 如何快速學習正規表示式
- 正規表示式入門學習
- 匹配視訊連結地址正規表示式
- vue學習資源(參考連結)Vue
- 最容易理解的正規表示式筆記筆記
- 正規表示式例項蒐集,通過例項來學習正規表示式。
- 通過js正規表示式例項學習正規表示式基本語法JS
- 正規表示式總結
- java 正規表示式語法學習Java
- 正規表示式學習(2)---字元特性字元
- 學習正規表示式(js、C#)JSC#
- 匹配迅雷種子連結的正規表示式
- 匹配圖片連結地址的正規表示式
- 5分鐘輕鬆學正規表示式
- 正規表示式複習
- 正規表示式同時匹配中英文及常用正規表示式
- JS常用正規表示式及驗證時間的正規表示式JS
- 正規表示式(初學)