es6 允許regexp建構函式接受正規表示式作為引數。第二個引數指定修飾符,如果存在則使用指定的修飾符。
var regexp = new regexp(/xyz/i, "ig");
console.log(regexp.flags); //gi
字串物件的4個使用正規表示式的方法:match()
,replace()
,search()
,split()
這四個方法全部呼叫regexp的例項的方法。
es6對正規表示式新增了u修飾符,含義為「unicode模式」,用來正確處理大於\uffff的unicode字元;
/^\ud83d/u.test('\ud83d\udc2a')
// false
/^\ud83d/.test('\ud83d\udc2a')
// true
一旦加上u修飾符號,就會修改下面這些正規表示式的行為:
點字元
點(.)字元不能識別碼點大於0xffff的unicode字元,必須加上u修飾符。
var s = '?';
/^.$/.test(s) // false
/^.$/u.test(s) // true
unicode字元表示法
大括號表示unicode字元,只有加上u才能識別
/\u/.test('a') // false
/\u/u.test('a') // true
/\u/u.test('?') // true
量詞
使用u修飾符後,所有量詞都會正確識別大於碼點大於0xffff的unicode字元。
/a/.test('aa') // true
/a/u.test('aa') // true
/?/.test('??') // false
/?/u.test('??') // true
預定義模式
u修飾符也影響到預定義模式
/^\s$/.test('?') // false
/^\s$/u.test('?') // true
i修飾符
有些unicode字元的編碼不同,但是字型很相近,比如,\u004b與\u212a都是大寫的k。
/[a-z]/i.test('\u212a') // false
/[a-z]/iu.test('\u212a') // true
除了u修飾符,es6還為正規表示式新增了y修飾符,叫做「粘連」(sticky)修飾符。
y修飾符的作用與g修飾符類似,不同之處在於,g修飾符只要剩餘位置中存在匹配就可,而y修飾符確保匹配必須從剩餘的第乙個位置開始,這也就是「粘連」的涵義。
var s = 'aaa_aa_a';
var r1 = /a+/g;
var r2 = /a+/y;
r1.exec(s) // ["aaa"]
r2.exec(s) // ["aaa"]
r1.exec(s) // ["aa"]
r2.exec(s) // null
表示是否設定了y修飾符
// es5的source屬性
// 返回正規表示式的正文
/abc/ig.source
// "abc"
// es6的flags屬性
// 返回正規表示式的修飾符
/abc/ig.flags
// 'gi'
字串必須轉義,才能作為正則模式。
function escaperegexp(str) \(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
}let str = '/path/to/resource.html?search=query';
escaperegexp(str)
// "\/path\/to\/resource\.html\?search=query"
上面的**和墊片模組regexp.escape都可以
ECMA Script 6新特性之解構賦值
1.基本概念用法 1.1解構賦值 es6允許按照一定模式,從陣列和物件中提取值,對變數進行賦值。var a 1 var b 2 var c 3 上述賦值語句用解構賦值為 var a,b,c 1,2,3 1.2上述的解構發生在等號左右模式相同的情況下,如果等號兩邊的模式不一致,解構可能會不成功 當變數...
EcmaScript 6 箭頭函式
es5 var total values.reduce function a,b 0 es6 var total values.reduce a,b a b,0 箭頭即乙個函式的簡化 es5 confetti btn click function event es6 confetti btn cli...
ECMAScript6掃盲筆記 一
ecma組織推出的ecmascript是乙個標準 協議 js是協議的實現。ecmascript簡稱ecma或es。目前使用最多的是es5.1,es6正式推出是在2015年。就醬 es6 es2015 相容性 es6 es2015 支援 ie10 chrome firefox 移動端 nodejs。和...