JS - 어떤 문자가 쓰였는지 감지하기
작성일자 : 2025년 07월 06일
어떤 문자가 쓰였는지 감지하기 (ISO 15924)
script.js
export const scripts = [
{ code: 'Latn', name: 'Latin' },
{ code: 'Cyrl', name: 'Cyrillic' },
{ code: 'Hang', name: 'Hangul' },
{ code: 'Hani', name: 'Han (Hanzi)' },
{ code: 'Arab', name: 'Arabic' },
{ code: 'Deva', name: 'Devanagari' },
{ code: 'Beng', name: 'Bengali' },
{ code: 'Grek', name: 'Greek' },
{ code: 'Hebr', name: 'Hebrew' },
];
detectScript.js
import { scripts } from './scripts';
// 텍스트에 포함된 스크립트 코드를 Set으로 반환
export function detectScripts(text) {
const found = new Set();
for (const { code } of scripts) {
// 동적으로 정규식 생성: ex) /\p{Script=Cyrl}/u
const re = new RegExp(`\\p{Script=${code}}`, 'u');
if (re.test(text)) found.add(code);
}
return [...found]; // ['Latn', 'Cyrl', ...]
}
사용 예시
const paragraph = `안녕하세요! Hello! Привет!`;
console.log(detectScripts(paragraph));
ISO 15924 Alphabetical Code List
Codes for the representation of names of scripts Codes pour la représentation des noms d’écritures Table 1 Alphabetical list of four-letter script codes Liste alphabétique des codets d’écriture à quatre lettres CodeN°English NameNom françaisAlia
unicode.org