티스토리 뷰
반응형
기본 방법
2018년 이후 ECMAScript에 새롭게 추가된 특수문자를 통해 더욱 쉽고 빠르게 유니코드를 사용할 수 있게 되었습니다
| 특수문자 | 참고 | 설명 | 예시 | 예시 설명 |
| \p{...} | 소문자 | 범주의 문자세트 | [\p{Hangul}]+ | 한글 문자열을 모두 추출한다 |
| \P{...} | 대문자 | 범주를 제외한 문자세트 | [\P{Hangul}]+ | 한글 이외의 문자열을 모두 추출한다 |
| \X | 대문자 | 확장된 유니코드 시퀸스 일부 언어에서는 지원하지 않음 |
[\X]+ |
\p{...} 에서 { } 사이에 미리 선언된 키값을 넣어서 검색하게 됩니다
일반적으로 많이 사용하는 코드
| 언어 | 예시 | 설명 |
| 한글 | [\p{Hangul}]+ | 한글만 포함 |
| 일어 | [\p{Hiragana}\p{Katakana}\p{Han}]+ | 히라가나, 카타카나를 포함하고, 일본어의 경우 한자 따로 추가 |
| 한자 | [\p{Han}]+ | 한자 |
| 숫자 | [0-9]+ [\p{Nd}]+ |
일반적인 아라비아 숫자만 캡쳐한다면 [0-9] 로도 문제없지만, 다른 국가의 숫자 문자를 캡쳐한다면 \p{Nd} 를 사용 |
지원되는 문자 코드
카테고리별로 구분된 문자 그룹
아래처럼 { } 사이에 해당 코드를 입력해서 사용 할 수 있습니다
/\p{L}/
/\p{Ll}/
| 카테고리 키 | 설명 및 범주 목록 링크 | 범주 문자 | |
| C | 기타(Other) | Cc, Cf, Cn, Co, Cs 를 모두 포함 | |
| Cc | 제어(Control) | NUL(Null), SOH(Start of Heading), STX(Start of Text), ETX(End of Text), EOT(End of Transmission), ENQ(Enquiry), ... | |
| Cf | 형식(Format) | SHY(Soft Hyphen), ALM(Arabic Letter Mark), MVS(Mongolian Vowel Separator), ... | |
| Cn | 할당되지 않음(Unassigned) | 유니코드 표에 없는 모든 코드 포인트 | |
| Co | 사적 사용(Private use) | 없음 | |
| Cs | 대리(Surrogate) | 유니코드로 모든 문자를 담으려 하지만 UTF-16(2바이트)으로는 최대 65,536자 밖에 표현하지 못하는 문제를 해결하기 위해 UTF-16에서 4바이트를 사용해 표현하기 위해 예약된 영역 (참고 사이트) | |
| L | 문자(Letter) | Ll, Lm, Lo, Lt, Lu 를 모두 포함 | |
| Ll | 소문자(Lowercase Letter) (소문자 L) |
a b c d ... ă ą ć ... ფ ქ .... | |
| Lm | 수정자 문자(Modifier Letter) | ʰ ʱ ʲ ʳ ʴ ʵ ʶ ʷ ʸ ʹ ʺ ʻ ʼ ʽ ʾ ʿ ˀ ˁ ..... | |
| Lo | 기타 문자(Other Letter) | ª º ƻ ǀ ǁ ǂ ǃ ʔ ... | |
| Lt | 제목 문자(Titlecase Letter) | Dž Lj Nj Dz ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ ... | |
| Lu | 대문자(Uppercase Letter) | A B C D E ... À Á Â Ã Ä ... Ɵ Ơ Ƣ Ƥ Ʀ Ƨ ... | |
| M | 마크(Mark) | Mc, Me, Mn 을 모두 포함 | |
| Mc | 간격 표시(Spacing Mark) | ः ऻ ा ि ी ॉ ... 〮 〯 ... 옛한글 방점 같이 특정 언어에서 사용되는 기호 |
|
| Me | 둘러싸는 표시(Enclosing Mark) | z ⃝ → z ⃝ (U+20DD)와 같이 다른 문자를 둘러싸는 결합 | |
| Mn | 비간격 표시(Nonspacing Mark) | ◌̀ ◌́ ◌̂ ◌̃ ◌̄ ◌̅ .... 예를들어 a 문자와 결합하면 발음 구별 기호 á 와 같음 |
|
| N | 숫자(Number) | Nd, Nl, No 를 모두 포함 | |
| Nd | 10진수(Decimal number) | 0 1 2 3 4 5 6 7 8 9 ٠١٢٣٤٥٦٧٨٩ ... 등 다른 언어의 숫자 문자 | |
| Nl | 문자 숫자(Letter Number) | Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ ... 𒐣 𒐤 𒐥 ... 𒑛 𒑜 𒑝 ... 다른 문자형 숫자 | |
| No | 기타 숫자(Other Number) | ⁰ ¹ ² ³ ... ₀ ₁ ₂ ₃ ... ½ ⅓ ⅔ ¼ ... ① ② ③ ... 등 | |
| P | 부호(Punctuation) | Pc, Pd, Ps, Pe, Pi, Pf, Po 를 모두 포함 | |
| Pc | 연결 부호(Connector Punctuation) | _ ‿ ⁀ ⁔ ︳ ︴ ﹍ ﹎ ﹏ _ | |
| Pd | 대시 부호(Dash Punctuation) | - ֊ ־ ᐀ ᠆ ‐ 등 | |
| Ps | 여는 부호(Open punctuation) | ( [ { ༺ ༼ ᚛ 등 | |
| Pe | 닫는 부호(Close punctuation) | ) ] } ༻ ༽ ᚜ 등 | |
| Pi | 시작 부호(Initial punctuation) | « ‘ ‛ “ ‟ ‹ ⸂ ⸄ ⸉ ⸌ ⸜ ⸠ | |
| Pf | 끝맺음 부호(Final punctuation) | » ’ ” › ⸃ ⸅ ⸊ ⸍ ⸝ ⸡ | |
| Po | 기타 부호(Other punctuation) | ! " # % & ' * , . / : ; .... ၏ ჻ ፠ ፡ 등 일반적으로 많이 쓰는 특수문자를 포함한 문자들 | |
| S | 심볼(Symbol) | Sc, Sk, Sm, So 을 모두 포함 | |
| Sc | 통화 기호(Currency Symbol) | $ ¢ £ ¤ ¥ ֏ 등 각 나라별 통화 기호 | |
| Sk | 수정 기호(Modifier Symbol) | ^ ` ¨ ¯ ´ ¸ 등 문자나 기호의 발음, 의미, 형태 등을 조정하는데 사용하는 기호 | |
| Sm | 수학 기호(Math Symbol) | + < = > | ~ ¬ ± × ÷ ϶ ؆ 등 수학 기호 | |
| So | 기타 기호(Other Symbol) | ¦ © ® ° ҂ ֍ ֎ ؎ ؏ ۞ ۩ 등 | |
| Z | 분리 기호(Separator) | ||
| Zl | 줄 구분자(Line Separator) | 줄을 구분하는데 사용되는 문자 (U+2028) | |
| Zp | 문단 구분자(Paragraph Separator) | 문단을 구분하는데 사용되는 문자 (U+2029) | |
| Zs | 공백 구분자(Space Separator) | 공백(U+0020), 줄바꿈 없는 공백(NBSP, U+00A0) 등 | |
지원되는 언어 코드
// 한글, 일어(한자 포함) 캡쳐시 예시
/([\p{Hangul}\p{Hiragana}\p{Katakana}\p{Han}]+)/
참고사이트
- php.net / Unicode character properties
https://www.php.net/manual/en/regexp.reference.unicode.php - compart.com / Unicode Character Categories
https://www.compart.com/en/unicode/category - compart.com / ISO 15924 - Codes for the representation of names of scripts
https://www.compart.com/en/unicode/scripts
반응형
'프로그래밍 > JavaScript' 카테고리의 다른 글
| SVG 추가 방식 비교 & CSS 접근 & JavaScript 내부 객체 접근 방법 (0) | 2025.02.10 |
|---|---|
| [JS] 정규식으로 URL 추출하기 v0.2 - URL 추출 및 분석/검사 (8) | 2010.03.12 |
| [JS] jQuery, 속성 셀렉터 표현식(Attribute Selector Expressions) (0) | 2010.02.12 |
| [JS] 현재 URL 주소값에 해당하는 메뉴들을 제어하기 (0) | 2009.05.19 |
| [JS] 정규식으로 URL 추출하기 (0) | 2009.04.10 |
| [JS] 메모리 누수 막기 팁! - Finally (1) | 2008.10.21 |
| [JS] escape(), encodeURI(), encodeURIComponent() 차이 (0) | 2008.07.23 |