플래그는 패턴 전체의 동작을 바꿔
ES2024의 JavaScript 정규식에는 다음 여덟 플래그가 있어.
i는 대소문자를 구분하지 않고g는 첫 매칭에서 멈추지 않고 다음 매칭을 계속 찾고m은^와$가 각 줄의 경계도 보게 하고s는.이 줄바꿈까지 매칭하게 해.u는 패턴과 입력을 유니코드 코드 포인트 기준으로 다루고y는lastIndex위치에서만 매칭을 시작하고d는 일치 객체에 그룹별 시작·끝 위치를 넣고v는 확장된 유니코드 집합 문법을 활성화해.
플래그 순서는 상관없지만 조합에는 규칙이 있어
/pattern/gimsu처럼 여러 플래그를 이어 붙일 수 있고 순서는 결과를 바꾸지 않아. 같은 플래그를 두 번 쓰면 오류가 나고, u와 v도 함께 사용할 수 없어. v가 u의 유니코드 인식 동작을 확장하는 별도 모드라 둘 가운데 하나를 골라야 해.
유니코드 텍스트에는 /u나 /v를 명시해
둘 다 없으면 보조 평면의 이모지 같은 문자가 서로게이트 두 개로 보일 수 있어. /u를 사용하면 .이 이런 문자를 코드 포인트 하나로 다루고 \p{...} 속성 이스케이프도 사용할 수 있어.
/y는 현재 위치에서 벗어나지 않아
전역 검색은 현재 위치에서 실패하면 뒤쪽 위치를 계속 찾지만, 고정 위치 검색은 정확히 lastIndex에서만 시도해. 입력을 앞에서부터 빠짐없이 소비해야 하는 토크나이저에서 이 차이가 유용해.