TypeScript RegExp型別
阿新 • • 發佈:2020-09-14
RegExp建構函式建立了一個正則表示式物件,用於將文字與一個模式匹配。
語法如下:
/pattern/flags new RegExp(pattern[, flags]) RegExp(pattern[, flags]) flags: i = 忽略大小寫, m = 多行匹配, g = 全域性匹配
有兩種方法來建立一個 RegExp 物件:一是字面量、二是建構函式。
字面量方式的引數不使用引號,而建構函式的引數需要使用引號。
// RegExp 型別例項 /ab+c/i; new RegExp('ab+c', 'i'); new RegExp(/ab+c/, 'i');
正則表示式中特殊字元的含義(一):
. //匹配任意單個字元 \d //匹配任意阿拉伯數字。等價於[0 - 9] \D //匹配任意一個不是阿拉伯數字的字元。等價於[^ 0 - 9] \w //匹配任意字母數字字元,還包括下劃線。等價於[A - Za - z0 -9_] \W //匹配任意不是字母數字下劃線的字元。等價於[^ A - Za - z0 -9_] \s //匹配一個空白符,包括空格、製表符、換頁符、換行符和其他 Unicode 空 \t //匹配一個水平製表符(tab) \r //匹配一個回車符 \n //匹配一個換行符
正則表示式中特殊字元的含義(二):
(x) //匹配 x 並且捕獲匹配項 [xyz] //匹配一個字元集合,匹配集合中的任意一個字元 [^xyz] //匹配任意不在括號內的字元 [0-9] //匹配0到9區間內的任意一個字元 [a-z] //匹配a到z區間內的任意一個字元 ^ //匹配輸入開始 $ //匹配輸入結尾
正則表示式中特殊字元的含義(三):
x* //匹配前面的模式 x 0 或多次 x+ //匹配前面的模式 x 1 或多次 x? //匹配前面的模式 x 0 或 1 次 x|y //匹配 x 或 y x{n} //n 是一個正整數。前面的模式 x 連續出現 n 次時匹配 x{n,} //n 是一個正整數。前面的模式 x 連續出現至少 n 次時匹配 x{n,m} //n 和 m 為正整數。前面的模式 x 連續出現至少 n 次,至多 m 次時匹配
正則表示式例項程式碼:
let re = /(\w+)\s(\w+)/; let str = "John Smith"; let newstr = str.replace(re, "$2, $1"); console.log(newstr); // => "Smith, John" let result = /^\d{4}-\d{2}-\d{2}$/.test('2019-10-01'); console.log(result); // => true let result2 = /[a-z]{4,5}/i.test('32_Abc333sss'); console.log(result2) // => false const text = "你好,China 中國"; let regex = /[\u4E00-\u9FA5\uF900-\uFA2D]{2}/g; let match = regex.exec(text); console.log(match); // => [ '你好', index: 0, input: '你好,China 中國' ] let match2 = regex.exec(text); console.log(match2); // => [ '中國', index: 9, input: '你好,China 中國' ]