正則表達式兩種寫法:正則表達式
First數組
const reg = new RegExp(/^\d/, 'g')
secondurl
const reg = /^\d/g
正則語法:code
+
加號表示要匹配的字符至少出現一次,也能夠出現n次字符串
const reg = /c+/g // 表示匹配c字符出現1到n次,只要有字符串中有c就能夠匹配到
?
問號表示要匹配的字符無關緊要input
const reg = /c?/g // 表示最多匹配字符c無關緊要,都會返回true
*
星號表示要匹配的字符能夠沒有,也能夠出現1次,也能夠出現n次console
const reg = /c*/g // 表示要匹配的字符c能夠沒有,能夠出現一次,也能夠出現n次
{n}
大括號裏寫入一個任意整數,表示要匹配的字符至少出現任意整數次class
const reg = /c{2}/g // 表示要匹配的字符c能夠至少匹配2~n個c
{n,}
大括號裏寫入一個任意整數,而後逗號後面沒寫任何東西,表示要匹配的字符至少出現任意整數次數到無限次數語法
const reg = /c{3,}/g // 表示要匹配的字符c能夠至少匹配3~n個c
{n,m}
大括號裏寫入了兩個任意整數,表示要匹配的字符至少出現n次,最多出現m次集合
const reg = /c{3,5}/g // 表示要匹配的字符c能夠至少匹配3個c,最多匹配5個c
\
斜槓是轉義符,是用來匹配字符串中的特殊符號的,匹配特殊符號須要加斜槓
\$ // 匹配$ \. // 匹配. \! // 匹配! \{ // 匹配{
()
小括號裏面寫的正則都是正則的子表達式,也是一個一個獨立的正則匹配表達式,能夠根據不一樣的子表達式將一個字符串裏符合條件的內容都匹配出來,返回到一個數組裏保存
// 注意這裏千萬不要用全局匹配,不然只能匹配個完整的url回來,只有不全局匹配纔會返回單個組件部分 const reg = /(\w+):\/\/(\w+\.\w+\.\w+)/ cosnt url = 'http://www.baidu.com' console.log(url.match(reg)) // 打印結果 ["http://www.baidu.com", "http", "www.baidu.com", index: 0, input: "http://www.baidu.com", groups: undefined]
之因此回這樣,按照我的理解,是這個正則表達式第一步是整個正則匹配返回http://www.baidu.com
,而後以這個匹配結果再去依次調用整個正則裏面的子表達式匹配,返回各個子表達式匹配的結果
[]
中括號,能夠在裏面寫入任意的字母,數字等字符集合,表示只匹配寫入的這些字符,沒有的則不匹配,能夠在括號裏寫入^
符號,注意在外面這個符號是匹配以什麼開端的,可是在中括號裏面表示取反,表示只匹配寫入字符之外的字符,不匹配寫入的字符
const reg = [abc] // 表示只匹配字符串中的a,b,c這三個字符 const reg = [^abc] // 表示匹配字符串中除了a,b,c這三個字符之外的全部的字符
[n-m]
範圍匹配,表示只匹配n-m這個範圍內容的字符,也能夠經過取反
const reg = [a-z] // 表示只匹配a~z之間的任意小寫字母 const reg = [^a-z] // 表示只匹配除了a~z之間任意字符之外的全部字符
|
表示只要知足豎線兩邊任意一個字符,便可匹配
const reg = /(jp|jpe)g/ // 表示不管是jpg仍是jpeg,均可以知足匹配條件
g
表示全局匹配
i
表示不區分大小寫
\d
匹配0~9之間任意數字字符
\D
匹配除了0~9之間任意數字字符之外的全部字符
\s
匹配任何空白字符,包括空格,製表符,換行符,換頁符
\S
匹配全部字符,除了空白字符
\w
匹配數字,字母,下劃線。===[A-Za-z0-9_]
\W
匹配非數字,字母,下劃線。
\t
匹配製表符
\f
匹配換頁符
\n
匹配換行符
\r
匹配回車符
\b
匹配空格前面要匹配的字符
\B
匹配非空格前面要匹配的字符