kunkunwoo@blog:~$ 거누권의 생각깜지

pc chrome 렌더링은 정상적으로 되는데, ios chrome에서 렌더링이 안될때 - (SyntaxError: Invalid regular expression: invalid group specifier name)

· 배운 것 · 3분 읽기

최근 chrome에서는 브라우저 랜더링이 정상적으로 되는데, ios에 있는 chrome에서 정상적으로 실행되지 않는 에러를 겪었다.
왜 그럴까 서칭을 해보니..

https://www.browserstack.com/guide/browser-rendering-engine
https://www.browserstack.com/guide/browser-rendering-engine

저 위의 그림과 같이 ios chrome은 다른 엔진을 쓴다..

그래서 에러의 원인을 찾기 위해서 ios chrome과 같은 엔진을 쓰는 safari에 있는 에러를 확인해 보았다.

SyntaxError: Invalid regular expression: invalid group specifier name

safari는 regex에서 lookbehind 문법을 지원하지 않는다.

new RegExp("(?<!:):(?!:)") //이거 safari 지원안됨

고쳤더니 바로 해결되었다.


정리

1. ios에 있는 chrome 엔진은 safari와 같은 webkit이다.
2. safari에서는 regex의 lookbehind 문법을 지원하지 않는다.
3. 그러므로 pc chrome이 되는데 ios chrome이 안된다면 safari를 켜서 에러를 확인해보자. (ios 브라우저 엔진은 다 webkit이다.)


참고

https://github.com/typesense/typesense-instantsearch-adapter/issues/29

Regex lookbehind in SearchRequestAdapter.js not supported in Safari · Issue #29 · typesense/typesense-instantsearch-adapter

https://www.browserstack.com/guide/browser-rendering-engine

Role of Rendering Engines in Browsers | BrowserStack