国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

ES6正則表達式擴展筆記

2024-05-06 16:38:39
字體:
供稿:網(wǎng)友

 前面的話

  正則表達式是javascript操作字符串的一個重要組成部分,但在以往的版本中并未有太多改變。然而,在ES6中,隨著字符串操作的變更, ES6也對正則表達式進行了一些更新。本文將詳細介紹ES6正則表達式擴展

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

  在 ES5 中,RegExp構(gòu)造函數(shù)的參數(shù)有兩種情況。

  第一種情況是,參數(shù)是字符串,這時第二個參數(shù)表示正則表達式的修飾符(flag)

var regex = new RegExp('xyz', 'i');// 等價于var regex = /xyz/i;

  第二種情況是,參數(shù)是一個正則表示式,這時會返回一個原有正則表達式的拷貝

var regex = new RegExp(/xyz/i);// 等價于var regex = /xyz/i;

  但是,ES5 不允許此時使用第二個參數(shù)添加修飾符,否則會報錯

// Uncaught TypeError: Cannot supply flags when constructing one RegExp from anothervar regex = new RegExp(/xyz/, 'i');

  ES6 改變了這種行為。如果RegExp構(gòu)造函數(shù)第一個參數(shù)是一個正則對象,那么可以使用第二個參數(shù)指定修飾符。而且,返回的正則表達式會忽略原有的正則表達式的修飾符,只使用新指定的修飾符

console.log(new RegExp(/abc/ig, 'i').flags);//i

  上面代碼中,原有正則對象的修飾符是ig,它會被第二個參數(shù)i覆蓋

【flags】

  ES6 為正則表達式新增了flags屬性,會返回正則表達式的修飾符

//ES5的source屬性返回正則表達式的正文/abc/ig.source//"abc"// ES6的flags屬性返回正則表達式的修飾符/abc/ig.flags//'gi' 

正則方法

  字符串對象共有4個方法,可以使用正則表達式:match()、replace()、search()和split()

  ES6 將這4個方法,在語言內(nèi)部全部調(diào)用RegExp的實例方法,從而做到所有與正則相關(guān)的方法,全都定義在RegExp對象上

String.prototype.match 調(diào)用 RegExp.prototype[Symbol.match]String.prototype.replace 調(diào)用 RegExp.prototype[Symbol.replace]String.prototype.search 調(diào)用 RegExp.prototype[Symbol.search]String.prototype.split 調(diào)用 RegExp.prototype[Symbol.split]

u修飾符

  正則表達式可以完成簡單的字符串操作,但默認將字符串中的每一個字符按照16位編碼處理。為了解決這個問題, ES6 對正則表達式添加了u修飾符,含義為“Unicode模式”,用來正確處理大于/uFFFF的 Unicode 字符。也就是說,會正確處理四個字節(jié)的 UTF-16 編碼

/^/uD83D/u.test('/uD83D/uDC2A') // false/^/uD83D/.test('/uD83D/uDC2A') // true

  一旦為正則表達式設(shè)置了 u 修飾符,正則表達式將會識別32位的輔助平面字符為1個字符,而不是兩個

【點號】

  點(.)字符在正則表達式中,含義是除了換行符以外的任意單個字符。對于碼位大于0xFFFF的 Unicode 字符,點字符不能識別,必須加上u修飾符

var text = "
注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 富源县| 沾化县| 黄骅市| 滕州市| 罗平县| 广平县| 黑龙江省| 赤峰市| 茂名市| 张家口市| 阳谷县| 泰和县| 柘荣县| 镇宁| 漳浦县| 肥城市| 库车县| 亳州市| 河源市| 托里县| 南木林县| 龙口市| 会同县| 海原县| 双鸭山市| 辽阳市| 全州县| 宜宾县| 香河县| 文昌市| 许昌市| 台东市| 白河县| 乌苏市| 杨浦区| 平顶山市| 闸北区| 古浪县| 内乡县| 宁明县| 商丘市|