상세 컨텐츠

본문 제목

SyntaxError: Invaild regular expression: invalid group specifier name (정규식 사파리 호환성 문제)

Error

by 비오스터딩 2022. 9. 12. 16:54

본문

크롬에서 아무 문제 없었는데,

아이폰으로 열어보니 흰 화면이 떴다.

 

개발자도구를 열어보니 발견한 에러

Invalid regular expression

... 정규식.....?

 

찾아보니 사파리에서는 후방탐색 정규식을 지원하지 않는다고했다.

 

사파리는 지원하지 않는 후방탐색 정규식

 

허헣

후방탐색을 사용하지 않고 정규식으로 바꿔주기로했다.

url에서 search의 key로 value를 찾는 코드였다.

// before
const regExp = new RegExp(`(?<=${key}=)[^&]*`);
const queryValue: string = url.match(regExp)?.[0] || '';

// after
const regExp = new RegExp(`(`${key}`=)(.*?)[^&]*`);
const query: string = url.match(regExp)?.[0] || '';
const queryValue = query.replace(`${key}=`, '');

그냥 후방탐색하려는 문자열까지 포함해서 값을 얻은다음

replace해서 그 문자열은 빈스트링으로 만들어버렸다.

 

(.*?) : 앞의 패턴(문자열) 일치 후, 뒤에 오는 문자열을 만날때까지 포함되는 모든값

 

 

 

 

url을 파싱하기위해 필요했던 정규식이었는데,

URLSearchParams라는 내장메서드를 발견해서 그걸 사용했다.

 

반응형

관련글 더보기

댓글 영역