IT/JavaScript

[JS] Invalid regular expression: invalid group specifier name

Tesseractjh 2022. 6. 21. 00:46

Safari에서는 정규표현식의 후방탐색(lookbehind, ?<=, ?<!)을 지원하지 않는다. 만약 정규표현식에 후방탐색이 포함되어 있다면 콘솔에 Invalid regular expression: invalid group specifier name가 뜨며 에러가 발생한다.

 

정규표현식에서 후방탐색을 대체하는 방법은 상황에 따라 다르겠지만 capturing group을 활용하면 아래와 같은 정규표현식에서 후방탐색을 대체할 수 있다.

 

const str = 'string.001';
const number = str.match(/(?<=\.)\d+/)[0]; // '001'
const str = 'string.001';
const number = str.match(/\.(\d+)/)[1]; // '001'

 

(2023년 2월 23일 추가)

2023년 2월 16일에 출시된 Safari 16.4 beta 1 버전부터 정규표현식 후방탐색을 지원한다.