2021年3月9日 星期二

用正規表達式解決地圖套件造成找不到Network封包的問題

 

如上圖,若使用了Mapbox之類的地圖套件,若要去查詢Network裡面其他封包(指定XHR的),會從這麼多的封包去找,找到眼睛都花了

我突然想到,那個input輸入框,可不可以輸入正規表達式之類的規則:『不要包含pbf』字串的封包

一查,真的可以耶

輸入以下規則就可以成功達成此規則

/^((?!pbf).)*$/


那來分析一下這個正規表示法


1. ^ (The caret symbol)

用途:是否在開頭

/^a/.test('abc') //true
/^b/.test('abc') //false

2. () (Capturing Groups)

用途:被括起來的,看成一個整體

/(c|g)ar/.test('car') //true
/(c|g)ar/.test('gar') //true

3. ?!(Negative Lookahead)

用途:此符號後的東西不可以被包含

/^(?!fat)/.test('cat') //true
/^(?!fat)/.test('fat') //false

4. .(period)

用途:可代表任何東西(除了換行符)

/^(f.t)$/.test('fat') //true
/^(f.t)$/.test('fct') //true

5. *(The Star)

用途:此符號之前的東西,可以出現>=0次

/^[a-z]*$/.test('abcde') //true
/^[a-z]*$/.test('abcde12') //false

([a-z]代表每一個字都可以是小寫英文字母)


6. $(The Dollar Sign)

用途:此符號之前的東西,必須碰到結尾

/(abc)$/.test('5566abc') //true
/(abc)$/.test('5566abcd') //false

沒有留言:

張貼留言