一共分爲四種正則表達式
專業術語聽起來確實有點雲裏霧裏,通俗的講就是匹配某個位置,位置指某個字符的左邊或右邊,零寬指的是不替換字符左右的字符,而是插入該位置。spa
該正則匹配某字符前面的位置。指針
let reg = /(?=o)/g
let str = 'hello world'
let s = str.replace(reg,'A')
console.log(s) //輸出hellAo wAorld
複製代碼
通過上面的代碼能夠看到,A匹配到了o前面的位置code
let reg = /l(?=o)/g
let str = 'hello world'
let s = str.replace(reg,'A')
console.log(s) //輸出helAo world
複製代碼
該正則匹配後面緊跟o的l字符,只有第二個l知足該條件,因此被替換console
與上面的(?!a)相反,這個表達式匹配後面沒有a字符的位置class
let reg = /(?!l)/g
let str = 'hello'
let s = str.replace(reg,'A')
console.log(s) //輸出AhAellAoA
複製代碼
該正則匹配後面沒有字符l的位置,所以除了兩個l字母前,均插入了A字符總結
let reg = /l(?!o)/g
let str = 'hello'
let s = str.replace(reg,'A')
console.log(s) //輸出heAlo
複製代碼
該正則表示匹配後面無o字符的l字符,由於只有第一個l後面沒有o,所以被替換移動
與(?=a)位置相反,匹配a字符後面的位置di
let reg = /(?<=l)/g
let str = 'hello'
let s = str.replace(reg,'A')
console.log(s) //輸出helAlAo
複製代碼
該正則匹配了全部l後面的位置,在該位置插入A字符copy
let reg = /(?<=l)o/g
let str = 'hello'
let s = str.replace(reg,'A')
console.log(s) //輸出hellA
複製代碼
該正則匹配前面爲l的o字符
與(?!a)位置相反,匹配前面沒有a字符的位置
let reg = /(?<!l)/g
let str = 'hello'
let s = str.replace(reg,'A')
console.log(s) //輸出AhAeAlloA
複製代碼
該正則匹配全部前面沒有l的位置
let reg = /(?<!e)l/g
let str = 'hello'
let s = str.replace(reg,'A')
console.log(s) //輸出helAo
複製代碼
只有第二個l前面沒有e所以,第二個被替換