^表示字串必須以後面的規則開頭, 在這裡就是說字串必須以\s*開頭.
\s 是空格的意思, * 表示有0個或多個
\s* 就是有0個或多個空格
(^\s*) 表示的就是以0個空格或者多個空格開頭
| 表示或的意思, 也就是滿足| 左邊的也成立, 滿足 | 右面的也成立.
\s*前面說過了
$ 的意思是字串必須以前面的規則結尾
(\s*$) 的意思就是, 以0個空格或者多個空格結尾
/.../g 是Regex的屬性, 表示全文匹配, 而不是找到一個就停止.
eg:(/(^\s*)|(\s*$)/g, "")
這個Regex替換的就是前置空格和後導空格
因為有前置空格, 就說明以0個或多個空格開頭, 滿足Regex中 | 前面的條件: (^\s*)
而如果有後導空格, 就說明以0個或多個空格結尾, 滿足Regex中 | 後面的條件: (\s*$)
===================================================================
Regex的介紹:
1.可以使用字元作為一個萬用字元來代替除分行符號(\n)之外的任意一個字元,例如: .at可以與"cat","sat","mat"等匹配.通常,這種萬用字元用於作業系統中檔案名稱匹配.
2.[a-z],任何含在[]中的內容都是一個字元,只匹配一個字元.
如:[a-zA-Z]代表任意大小寫字母.
3.[^a-z].匹配任何不屬於a-z中的字元.
4.[a-z&&[hij]].匹配hij任何一個(交集)
5.\s.匹配Null 字元(空格,tab,\n,換頁,斷行符號)
6.\S.匹配非Null 字元(和[^\s]一樣)
7.\d.匹配數字,相當於[0-9]
8.\D.匹配非數字,相當於[^0-9],匹配中文,空格,分行符號
9.\w.匹配詞字元,相當於[a-zA-Z0-9],不包含中文,不能代表空格,分行符號
10.\W.匹配非詞字元,相當於[^\w],匹配一個中文字
邏輯運算子:
|:管道符.如:x|y表示x或y
():擷取的群組.(abc)|(xyz)表示abc或xyz
邊界匹配符:
^:從頭匹配
$:從尾匹配
\b:詞界.
\B.非詞界
量詞:
量詞描述一個模式吸收輸入文本的方式.
*:前面字元或組匹配0或多個
+:前面字元或組匹配1或多個
?:前面字元或組匹配0或1個
{n}:前面字元或組的數量為n個
{n,}:前面字元或組的數量至少n個
{n,m}:前面字元或組數量至少n個,最多m個