正則表達式(基礎認識)
regular expression : RegExp
首先看下關於本文章的思維導圖吧
記憶記憶,對於初學正則的小夥伴,這編文章值得記憶一下
1. 作用
- 用來處理字符串的規則,學正則就是爲了制定規則
- 只能處理字符串
- 它是一個規則:可以驗證字符串是否符合某個規則(test),也可以把字符串中符合規則的內容捕獲到(exec/match…)
let str = 'good good study,day day up'; let reg = /\d+/; //是否包含數字 console.log(reg.test(str)); // false str = '2020-04-07'; console.log(reg.exec(str));//"2020", index: 0, input: "2020-04-07", groups: undefined
2. 編寫正則表達式
2.1 創建方式
- 字面量方式:兩個斜杆之間包起來的,都是用來描述規則的元字符
let reg = /\d+/;
- 構造函數模式創建 :兩個參數
let reg = new RegExp('\\d+');
- 元字符字符串
- 修飾符字符串
2.2 正則表達式由兩部分組成
2.2.1 元字符
- 量詞元字符:設置出現的次數
元字符 | 含義 |
---|---|
* | 零到多次 |
+ | 一到多次 |
? | 零次或者一次 |
{n} | 出現n次 |
{n,} | 出現n到多次 |
{n,m} | 出現n到m次 |
- 特殊元字符:單個或者組合在一起代表特殊的含義
元字符 | 含義 |
---|---|
\ | 轉義字符(普通->特殊->普通)) |
. | 除\n(換行符)以外的任意字符 |
^ | 以哪一個元字符開頭 |
$ | 以哪一個元字符結尾 |
\n | 換行符 |
\d | 0-9之間的一個數字 |
\D | 非0-9之間的一個數字(大寫和小寫的意思是相反的) |
\w | 數字 字母 下劃線中的任意一個字符 |
\s | 一個空白字符(包含空格 製表符 換頁符等) |
\t | 一個製表符(一個TAB鍵:四個空格) |
x | y |
[xyz] | x或y或z中的一個字符 |
[^xy] | 除了x/y以外的任意字符 |
[a-z] | 指定a-z這個範圍的任意字符([0-9][a-z][A-Z]_)=== \w |
[^a-z] | 除了a-z以外的字符 |
() | 分組符號 |
(?: ) | 只匹配不捕獲 |
(?=) | 正向預查 |
(?!) | 負向預查 |
- 普通元字符
/name/
此正則匹配的是name
2.2.2 修飾符:img(寫在正則的外面)
修飾符 | 英文全稱 | 含義 |
---|---|---|
i | ignoreCase | 忽略單詞大小寫匹配 |
m | multiline | 可以進行多行匹配 |
g | global | 全局匹配 |