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一二三"