昨天學習群里有人遇到這樣的問題,要取api/后面不是/v1的路徑,這樣的正則改怎么寫。要解決這個問題就用到了正則中的負向前瞻。前瞻向后看后面的是否匹配,匹配的話就通過,負向前瞻就是看后面的是否不匹配,不匹配就通過,還有一個與之相反的向前看叫后顧。
正則表達式是從文本頭部向尾部解析”。這就像在走路,沒走過的路在你的前面,需要你往前看(前瞻);走過的路需要你回頭看(后顧)。
通過查看上面的圖片顯示的信息,我們應該知道提出問題的同學的正則就應該這樣寫
var pattern=/api(?!\/v1)/; var str='api/v1'; var str1='api/av1'; console.log(pattern.test(str)) // false api后面緊跟的是/v1時候驗證不通過 console.log(pattern.test(str1)) // true api后面緊跟的不是/v1時候驗證通過