JavaScript Regular Expression - Brackets、Metacharacters
一、Brackets
「[n]」,一對方括號代表一個字元,n 代表特定條件
1 、[abc]:表示找尋一字元,該字元為 a 或 b 或 c 皆符合。
2、[^abc]:表示找尋一字元,該字元只要不是 a 或 b 或 c 字元其餘皆符合。
3、[0-9]:表示找尋一字元,該字元在 0~9 之間皆符合。
4、[a-z]:表示找尋一字元,該字元在 a~z 之間皆符合。
5、[a-z0-9]:表示找尋一字元,該字元在 a~z 或 0~9之間皆符合。
6、|:「或」的意思,例如:[abc] 就等於 a|b|c
var str = "a1b2c3d"; console.log(str.replace(/[abc]/g, "*")); console.log(str.replace(/a|b|c/g, "*"));
其結果皆為 "*1*2*3d"
範例
var str = "a1b2c3d"; console.log(str.replace(/[^abc]/g, "*"));
其結果為 "a*b*c**"
二、Metacharacters
ASCII Table
圖片來源:https://www.asciitable.xyz
1、「.」:表示一個任意字元,除了 newline 或 line terminator 之外。
var str = "a1b2"; console.log(str.replace(/./g, "*"));
其結果為 "****"
2、「\w」:表示一個任意「英文」或「數字」字元,不包含中文字,也不包含空白,其他皆不包含。
var str = "a1b2一二三 "; console.log(str.replace(/\w/g, "*"));
其結果為 "****一二三 "
3、「\W」:表示一個非英數的任意字元。
var str = "a1b2一二三 "; console.log(str.replace(/\W/g, "*"));
其結果為 "a1b2****"
4、「\d」:表示一個為數字的任意字元。
var str = "a1b2一二三 "; console.log(str.replace(/\d/g, "*"));
其結果為 "a*b*一二三 "
5、「\D」:表示一個非數字的任意字元。
var str = "a1b2一二三 "; console.log(str.replace(/\D/g, "*"));
其結果為 "*1*2****"
6、「\s」:表示一個空白字元。
var str = "a1b2一二三 "; console.log(str.replace(/\s/g, "*"));
其結果為"a1b2一二三*"
7、「\S」:表示一個非空白字元。
var str = "a1b2一二三 "; console.log(str.replace(/\S/g, "*"));
其結果為"******* "
8、「\0」:表示一個 NUL 字元。
9、「\r」:表示一個 carriage return 字元。
10、「\n」:表示一個跳行 (new line) 字元。
11、「\ddd」:表示一個八進制的字元。
12、「\xdd」:表示一個十六進制的字元。
var str = "a1b2一二三"; console.log(str.replace(/\x61/g, "*"));
其結果為 "*1b2一二三"
13、「\udddd」:表示一個十六進制的 Unicode 字元。
var str = "a1b2一二三"; console.log(str.replace(/\u0061/g, "*"));
其結果為 "*1b2一二三"