소셜로그인 중단 안내

계정으로 로그인 기능이 2023년 11월 16일 중단되었습니다.

아이보스 계정이 사라지는 것은 절대 아니며, 계정의 이메일 주소를 이용해 로그인 하실 수 있습니다.

▶️ 자세한 공지사항 확인

영어 오타를 한글로 변환

2007.10.18 12:31

엔씨

조회수 3,580

댓글 0

<script type="text/javascript">
var en_h = "rRseEfaqQtTdwWczxvg";
var reg_h = "[" + en_h + "]";

var en_b = {
k:0,o:1,i:2,O:3,j:4,p:5,u:6,P:7,h:8,hk:9,ho:10,hl:11,y:12,n:13,nj:14,np:15,nl:16,b:17,m:18,ml:19,l:20
}
var reg_b = "hk|ho|hl|nj|np|nl|ml|k|o|i|O|j|p|u|P|h|y|n|b|m|l";

var en_f = {
"":0,r:1,R:2,rt:3,s:4,sw:5,sg:6,e:7,f:8,fr:9,fa:10,fq:11,ft:12,fx:13,fv:14,fg:15,a:16,q:17,qt:18,t:19,T:20,d:21,w:22,c:23,z:24,x:25,v:26,g:27
}
var reg_f = "rt|sw|sg|fr|fa|fq|ft|fx|fv|fg|qt|r|R|s|e|f|a|q|t|T|d|w|c|z|x|v|g|";

var reg_exp = new RegExp("("+reg_h+")("+reg_b+")((?:"+reg_f+")(?=(?:"+reg_h+")(?:"+reg_b+"))|(?:"+reg_f+"))","g");

function toKorean(str) {
return str.replace(reg_exp,replace);
}

function replace(str,h,b,f) {
return String.fromCharCode(en_h.indexOf(h)*21*28 + en_b[b]*28 + en_f[f] + 44032);
}


// Test
alert(toKorean("rkwl dksgdms rlf - fhqjxm vmfhtmxm"));

</script>


# 영문으로 한글을 쳤을때 변환하는 용도입니다.

심심해서 만들어봤습니다.

검색 엔진에서 쓰던데 소스를 안봐서 같은 방식인지는 모르겠네요.


# 원리는 간단합니다.

초성 중성 종성 별로 영어 오타값을 만들고, 조합을 고려해서 한글 변화시의 한글문자로 변환합니다.

한글 자소 분리해보신 분이면 바로 아실 겁니다.
(원리 자체는 아주 쉽습니다.)


# Caps Lock는 off된 상태, 즉 쌍자음이나 연모음이 영대문자입니다.

ex) Tkdna : 싸움


# 단자음이나 단모음은 한글로 변환하지 않습니다.


# 정확한 오타(?)일 경우에만 정확하게 변환됩니다.


@ php의 array_search 가 있다면 굳이 오브젝트로 할 필요 없을텐데...
퍼포먼스 상 패턴을 고정시키고 오브젝트로 만들었습니다.
웹사이트
목록글쓰기
댓글 0

아직 등록된 댓글이 없습니다.
엔씨님의 게시글에 첫번째 댓글을 남겨보세요.

댓글 새로고침
로그인 후 더욱 많은 기능을 이용하세요!아이보스 로그인