먼저 코드를 작성하고 그다음에 말도 안 되는 소리를 하세요^_^
/**
* 전자 문자 변환
*/
함수 toDBC(str){
var 결과 = "";
var len = str.length;
for(var i=0;i
{
var cCode = str.charCodeAt(i);
//전각과 반각의 차이(공백 제외): 65248(십진수)
cCode = (cCode>=0x0021 && cCode<=0x007E)?(cCode 65248) : cCode;
//공백 처리
cCode = (cCode==0x0020)?0x03000:cCode;
결과 = String.fromCharCode(cCode);
}
결과 반환;
}
/**
* 반각 문자 변환
*/
함수 toSBC(str){
var 결과 = "";
var len = str.length;
for(var i=0;i
{
var cCode = str.charCodeAt(i);
//전각과 반각의 차이(공백 제외): 65248(십진수)
cCode = (cCode>=0xFF01 && cCode<=0xFF5E)?(cCode - 65248) : cCode;
//공백 처리
cCode = (cCode==0x03000)?0x0020:cCode;
결과 = String.fromCharCode(cCode);
}
결과 반환;
}
지식 포인트
반각 문자와 전각 문자(ASCII 문자)를 비교하면 ASCII 문자 범위에는 전각 및 반각 문자 범위(0x20~0x7E)가 있음을 알 수 있습니다.
예:
반각 기호와 전각 기호가 다릅니다
# 0x0023 0xFF03 0xFEE0
?0x003F 0xFF1F 0xFEE0
스페이스 0x0020 0x03000 0x2FE0
공백을 제외한 전각 문자와 반각 문자의 차이는 0xFFE0입니다.
따라서 전자 및 반각 문자를 변환할 때는 공백에 대한 특별한 처리가 필요합니다.
예:
전폭 = 반폭 0xFEE0
반폭 = 전폭 - 0xFFE0