正則的一些基礎知識 創建正則 通過構造函數 const pattern = new RegExp(pattern,modifiers) pattern: 匹配的字元串形式,可以有變數 modifiers: 匹配的模式,g(全局),i(忽略大小寫),u(多行) 字面量的形式: const patter ...
正則的一些基礎知識
創建正則
-
通過構造函數
const pattern = new RegExp(pattern,modifiers)
-
pattern
: 匹配的字元串形式,可以有變數 -
modifiers
: 匹配的模式,g(全局),i(忽略大小寫),u(多行)
-
-
字面量的形式:
const pattern = /pattern/g
-
pattern
: 匹配的內容
-
-
reg.test(str)
: 檢測一個字元串是否有要匹配的內容,返回一個布爾值
-
reg.exec(str)
:該方法為專門為捕獲組而設計的(每一個小括弧是一個捕獲組)-
參數:要匹配的字元串
-
返回值:返回的是一個數組。如果不匹配則返回null
-
關於返回值數組的說明:
-
它確實是Array的實例。
-
但是這個數組有兩個額外的屬性:index和input
-
index:表示匹配的字元串在源字元串中的索引
-
input:表示匹配的源字元串。
-
數組的第一項目是與整個模式匹配的字元串,其他項是與模式中捕獲組匹配的字元串
-
如果沒有捕獲組,則數組中只有第一項
-
-
正則表達式的一些規則
-
/[0-9a-zA-Z]/
: 匹配[]
裡面的任意字元 -
/(abc|def)/
: 匹配|
中的一項 -
/[^0-9]/
: 匹配非數字 -
\d
: 匹配數字 -
\D
: 匹配非數字 -
\w
: 匹配字母和數字以及 _ -
\W
: 匹配非(字母和數字以及_) -
\b
: 匹配空格子字元 -
\n
: 匹配換行符 -
\t
: 匹配製表符 -
\0
: 匹配null字元 -
\r
:匹配回車字元 -
\s
: 匹配空白字元、空格、字表符和換行符 -
\S
: 匹配非空白字元 -
^
: 行首匹配 -
$
: 行尾匹配 -
?
: 0或1個 -
*
: 0或多個 -
+
: 至少一個 -
{m}
: m次 -
{m,n}
: m到n次 -
{m,}
: 至少m次
支持正則表達式的字元串方法
-
search
: 檢索與正則表達式相匹配的第一個匹配項的索引 -
match
: 找到一個或多個正則表達式的匹配。其實和正則表達式的exec
方法比較像 -
replace
(reg|str,str|fn)-
第二個參數是一個字元串時,會對匹配到的字元進行替換.(正則可以全局替換)
-
第二個參數是函數時,會對匹配到每一個字元進行回調,回調的第一個參數是匹配到的字元
-
第一個參數是字元串時,回調的第二個參數時匹配到的字元的索引,第三個參數是整個字元
-
第二個參數是正則時,若匹配到的字元沒有捕獲時,和上面一樣.若有捕獲,則捕獲的項會作為參數傳進來,捕獲後面的參數則和上面的一樣
-
-
-
一些例子
-
獲取query的參數
function getQueryByName(name) {
const search = location.search
const ret = search.match(new RegExp('[?&]'+name+'([^&]'*))
return ret&&ret.length > 0 ? ret[1] : ''
}
-