2021-12-29

유니코드 정규표현식 (Regex unicode)

유니코드 정규표현식 (Regex unicode)

유니코드

문자열을 처리할 수 있는 코드의 집합 표준이다.
이것을 통해 문자로써 이모티콘(✨)과 수식(𝒳)의 처리가 가능해진다.

정규표현식에서의 유니코드

es6가 적용되는 모던 브라우저에서 사용이 가능한 정규표현식의 형태이다.
이로인해 기존 유니코드를 사용한 이모티콘, 수식에 대하여 정규표현식 처리가 가능하다.
사용법은 글로벌 옵션으로 u 를 추가한다.

	/𝌆{2}/u
	console.log(/𝌆{2}/.test('𝌆𝌆')); // false
	console.log(/𝌆{2}/u.test('𝌆𝌆')); // true

유니코드 - 표기 체계

언어에 따라 유니코드 그룹이 되어있어 그것을 사용하는 방법이 있다.
이것을 이용하면 기존의 한글 처리에서 일반적으로 아래와 같이 처리하는 것을.

	const ko = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/;
	ko.test('한글인가요'); // true

아래처럼 처리할경우 처리가 가능하다.
언어별로 설정하게되면 유니코드의 범위는 언어마다 지정되어서
일일이 유니코드 범위를 지정하지 않아도 된다.

	const ko = new RegExp('[\\p{sc=Hangul}]', 'u');
	ko.test('한글인가요'); // true
	const jp = new RegExp('[\\p{sc=Hiragana}|\\p{sc=Katakana}]', 'u');
	jp.test('カタカナ'); // true
	const ch = new RegExp('[\\p{sc=Han}]', 'u');
	ch.test('我是意大利'); // true

표기 체계 목록
https://en.wikipedia.org/wiki/Script_(Unicode)

참조

Written with StackEdit.