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

資訊專(zhuān)欄INFORMATION COLUMN

ECMAScript6 新特性——“正則的擴(kuò)展”

Shisui / 2179人閱讀

摘要:第二個(gè)參數(shù)指定修飾符,如果存在則使用指定的修飾符。屬性表示是否設(shè)置了修飾符屬性的屬性返回正則表達(dá)式的正文的屬性返回正則表達(dá)式的修飾符字符串必須轉(zhuǎn)義,才能作為正則模式。

1 RegExp構(gòu)造函數(shù)

ES6 允許RegExp構(gòu)造函數(shù)接受正則表達(dá)式作為參數(shù)。第二個(gè)參數(shù)指定修飾符,如果存在則使用指定的修飾符。

var regexp = new RegExp(/xyz/i, "ig");
console.log(regexp.flags); //gi
2 字符串的正則方法

字符串對(duì)象的4個(gè)使用正則表達(dá)式的方法: match(),replace(),search(),split()這四個(gè)方法全部調(diào)用RegExp的實(shí)例的方法。

3 u修飾符

ES6對(duì)正則表達(dá)式添加了u修飾符,含義為“Unicode模式”,用來(lái)正確處理大于uFFFF的Unicode字符;

/^uD83D/u.test("uD83DuDC2A")
// false
/^uD83D/.test("uD83DuDC2A")
// true

一旦加上u修飾符號(hào),就會(huì)修改下面這些正則表達(dá)式的行為:

點(diǎn)字符

點(diǎn)(.)字符不能識(shí)別碼點(diǎn)大于0xFFFF的Unicode字符,必須加上u修飾符。

var s = "?";

/^.$/.test(s) // false
/^.$/u.test(s) // true

Unicode字符表示法

大括號(hào)表示Unicode字符,只有加上u才能識(shí)別

/u{61}/.test("a") // false
/u{61}/u.test("a") // true
/u{20BB7}/u.test("?") // true

量詞

使用u修飾符后,所有量詞都會(huì)正確識(shí)別大于碼點(diǎn)大于0xFFFF的Unicode字符。

/a{2}/.test("aa") // true
/a{2}/u.test("aa") // true
/?{2}/.test("??") // false
/?{2}/u.test("??") // true

預(yù)定義模式

u修飾符也影響到預(yù)定義模式

/^S$/.test("?") // false
/^S$/u.test("?") // true

i修飾符

有些Unicode字符的編碼不同,但是字型很相近,比如,u004B與u212A都是大寫(xiě)的K。

/[a-z]/i.test("u212A") // false
/[a-z]/iu.test("u212A") // true
4 y修飾符

除了u修飾符,ES6還為正則表達(dá)式添加了y修飾符,叫做“粘連”(sticky)修飾符。

y修飾符的作用與g修飾符類(lèi)似,不同之處在于,g修飾符只要剩余位置中存在匹配就可,而y修飾符確保匹配必須從剩余的第一個(gè)位置開(kāi)始,這也就是“粘連”的涵義。

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
5 sticky屬性

表示是否設(shè)置了y修飾符

6 flags屬性
// ES5的source屬性
// 返回正則表達(dá)式的正文
/abc/ig.source
// "abc"

// ES6的flags屬性
// 返回正則表達(dá)式的修飾符
/abc/ig.flags
// "gi"
7 RegExp.escape()

字符串必須轉(zhuǎn)義,才能作為正則模式。

function escapeRegExp(str) {
  return str.replace(/[-[]/{}()*+?.^$|]/g, "$&");
}

let str = "/path/to/resource.html?search=query";
escapeRegExp(str)
// "/path/to/resource.html?search=query"

上面的代碼和墊片模塊regexp.escape都可以https://github.com/ljharb/regexp.escape

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

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

相關(guān)文章

  • JS語(yǔ)言核心——“正則表達(dá)式模式匹配”

    摘要:正則表達(dá)式一個(gè)描述字符模式的對(duì)象正則表達(dá)式的定義構(gòu)造函數(shù)正則表達(dá)式直接量一對(duì)斜杠新特性正則的擴(kuò)展引用類(lèi)型類(lèi)型的注意要點(diǎn)用于模式匹配的方法不支持全局搜索忽略表達(dá)式參數(shù)中的修飾符兩個(gè)參數(shù)第一個(gè)是正則表達(dá)式,第二個(gè)是要替換的字符串接收一個(gè)正則表達(dá) 正則表達(dá)式(regular expression):一個(gè)描述字符模式的對(duì)象 1 正則表達(dá)式的定義 RegExp()構(gòu)造函數(shù) 正則表達(dá)式直接量(一...

    李世贊 評(píng)論0 收藏0
  • ECMAScript6 特性——“l(fā)et和const命令”

    摘要:基本用法所聲明的變量,只在命令所在的代碼塊內(nèi)有效。在循環(huán)中適合使用不存在變量提升不像那樣會(huì)發(fā)生變量提升現(xiàn)象暫時(shí)性死區(qū)只要塊級(jí)作用域內(nèi)存在命令,它所聲明的變量就綁定這個(gè)區(qū)域,不再受外部的影響。塊級(jí)作用域?qū)嶋H上為新增了塊級(jí)作用域。 1 let 基本用法 所聲明的變量,只在let命令所在的代碼塊內(nèi)有效。 { let b = 100; console.log(b); //100...

    PascalXie 評(píng)論0 收藏0
  • ECMAScript6 特性——“數(shù)值擴(kuò)展

    摘要:二進(jìn)制和八進(jìn)制表示法提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法,分別用前綴或和或表示。用來(lái)檢查是否為有窮以及是否為這兩個(gè)新方法只對(duì)數(shù)值有效,非數(shù)值一律返回。引入了和這兩個(gè)常量,用來(lái)表示這個(gè)范圍的上下限。因?yàn)橛芯认拗疲^(guò)的次方的值無(wú)法精確表示。 1 二進(jìn)制和八進(jìn)制表示法 ES6提供了二進(jìn)制和八進(jìn)制數(shù)值的新的寫(xiě)法,分別用前綴0b(或0B)和0o(或0O)表示。 console.log(0b10...

    Dean 評(píng)論0 收藏0
  • ECMAScript6 特性——“變量解構(gòu)賦值”

    摘要:數(shù)組的解構(gòu)賦值允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱(chēng)為解構(gòu)。如果變量名與屬性名不一致,必須寫(xiě)成下面這樣。 1 數(shù)組的解構(gòu)賦值 ES6允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱(chēng)為解構(gòu)(Destructuring)。 基本用法 { var [a,[b,c],d,,...f] = [1,[2,3],4,5,6,7]; console...

    Eric 評(píng)論0 收藏0
  • ECMAScript6 特性——“字符串擴(kuò)展

    摘要:吉字符串的遍歷器接口為字符串添加了遍歷器接口,使得字符串可以被循環(huán)遍歷。提供字符串實(shí)例的方法,用來(lái)將字符的不同表示方法統(tǒng)一為同樣的形式,這稱(chēng)為正規(guī)化。返回布爾值,表示參數(shù)字符串是否在源字符串的頭部。 1 字符串的Unicode表示法 ES6 只要將碼點(diǎn)放入大括號(hào),就能正確解讀該字符; var x = u20bb7; document.write(x); //?7 var x = u{2...

    BlackMass 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<