RegExp構(gòu)造函數(shù)
在ES5中缩筛,RegExp構(gòu)造函數(shù)的參數(shù)有兩種情況艺演。 第一種情況是胎撤,參數(shù)是字符串伤提,這時(shí)第二個(gè)參數(shù)表示正則表達(dá)式的修飾符(flag)。
var regex = new RegExp('xyz', 'i'); // 等價(jià)于
var regex = /xyz/I;
第二種情況是次伶,參數(shù)是一個(gè)正則表示式,這時(shí)會返回一個(gè)原有正則表達(dá)式的拷貝柱彻。
var regex = new RegExp(/xyz/i); // 等價(jià)于
var regex = /xyz/I;
字符串的正則方法
u修飾符(較難)
y修飾符
ES6新增了使用大括號表示Unicode字符瘤载,這種表示法在正則表達(dá)式中必須加上 u 修飾符鸣奔,才能識別。
(1)點(diǎn)字符
點(diǎn)( . )字符在正則表達(dá)式中锨匆,含義是除了換行符以外的任意單個(gè)字符。對于碼點(diǎn)大于 0xFFFF 的Unicode字符土榴,點(diǎn)字符不能 識別玷禽,必須加上 u 修飾符瑞佩。
(2)Unicode字符表示法 ES6新增了使用大括號表示Unicode字符瘫寝,這種表示法在正則表達(dá)式中必須加上 u 修飾符,才能識別暮屡。
(3)量詞
使用 u 修飾符后准夷,所有量詞都會正確識別大于碼點(diǎn)大于 0xFFFF 的Unicode字符。
(4)預(yù)定義模式
u修飾符也影響到預(yù)定義模式楔绞,能否正確識別碼點(diǎn)大于 的Unicode字符。
(5)i修飾符
有些Unicode字符的編碼不同耻讽,但是字型很相近,比如, \u004B 與 \u212A 都是大寫的K。
y修飾符
除了 u 修飾符,ES6還為正則表達(dá)式添加了 y 修飾符掘猿,叫做“粘連”(sticky)修飾符。
y修飾符的作用與 g 修飾符類似,也是全局匹配,后一次匹配都從上一次匹配成功的下一個(gè)位置開始。不同之處在
于耽梅, 修飾符只要剩余位置中存在匹配就可,而 y 修飾符確保匹配必須從剩余的第一個(gè)位置開始胖烛,這也就是“粘連”的涵義眼姐。
sticky屬性
與 y 修飾符相匹配,ES6的正則對象多了 sticky 屬性佩番,表示是否設(shè)置了 y 修飾符众旗。
var r = /hello\d/y;
r.sticky // true
flags屬性
ES6為正則表達(dá)式新增了 flags 屬性,會返回正則表達(dá)式的修飾符趟畏。
作者開發(fā)經(jīng)驗(yàn)總結(jié)的文章推薦,持續(xù)更新學(xué)習(xí)心得筆記
五星推薦 Runtime 10種用法(沒有比這更全的了)
五星推薦 成為iOS頂尖高手贡歧,你必須來這里(這里有最好的開源項(xiàng)目和文章)
五星推薦 iOS逆向Reveal查看任意app 的界面
五星推薦手把手教你使用python自動打包上傳應(yīng)用分發(fā)
JSPatch (實(shí)時(shí)修復(fù)App Store bug)學(xué)習(xí)(一)
iOS 高級工程師是怎么進(jìn)階的(補(bǔ)充版20+點(diǎn))
擴(kuò)大按鈕(UIButton)點(diǎn)擊范圍(隨意方向擴(kuò)展哦)
最簡單的免證書真機(jī)調(diào)試(原創(chuàng))
通過分析微信app,學(xué)學(xué)如何使用@2x,@3x圖片
TableView之MVVM與MVC之對比
使用MVVM減少控制器代碼實(shí)戰(zhàn)(減少56%)
ReactiveCocoa添加cocoapods 配置圖文教程及坑總結(jié)