本文介绍如何使用JavaScript编写函数实现半角与全角字符的相互转换。核心原理基于字符编码差值65248,通过遍历字符串并利用charCodeAt与fromCharCode方法,分别处理空格及常规字符,完成ToDBC(半角转全角)和ToCDB(全角转半角)逻辑。
半角与全角转换原理及代码实现
具体实现代码如下所示:
全角空格的Unicode编码为12288,而半角空格的编码为32。
除空格外,其他字符在半角(编码范围33至126)与全角(编码范围65281至65374)之间的转换关系为:全角编码减去半角编码恒等于65248。
以下是将半角字符转换为全角字符的函数实现:
function ToDBC(txtstring)
{
var tmp = "";
for(var i=0;i<txtstring.length;i++)
{
if(txtstring.charCodeAt(i)==32)
{
tmp= tmp+ String.fromCharCode(12288);
}
if(txtstring.charCodeAt(i)<127)
{
tmp=tmp+String.fromCharCode(txtstring.charCodeAt(i)+65248);
}
}
return tmp;
}
以下是将全角字符转换为半角字符的函数实现:
function ToCDB(str)
{
var tmp = "";
for(var i=0;i<str.length;i++)
{
if(str.charCodeAt(i)>65248&&str.charCodeAt(i)<65375)
{
tmp += String.fromCharCode(str.charCodeAt(i)-65248);
}
else
{
tmp += String.fromCharCode(str.charCodeAt(i));
}
}
return tmp
}