先上代码,再说废话^_^
复制代码 代码如下:
/**
* 转全角字符
*/
function todbc(str){
var result = ;
var len = str.length;
for(var i=0;i {
var ccode = str.charcodeat(i);
//全角与半角相差(除空格外):65248(十进制)
ccode = (ccode>=0x0021 && ccode //处理空格
ccode = (ccode==0x0020)?0x03000:ccode;
result += string.fromcharcode(ccode);
}
return result;
}
/**
* 转半角字符
*/
function tosbc(str){
var result = ;
var len = str.length;
for(var i=0;i {
var ccode = str.charcodeat(i);
//全角与半角相差(除空格外):65248(十进制)
ccode = (ccode>=0xff01 && ccode //处理空格
ccode = (ccode==0x03000)?0x0020:ccode;
result += string.fromcharcode(ccode);
}
return result;
}
知识点
通过半角字符与全角字符的比较(ascii字符),我们可以发现,拥有全角与半角之分的ascii字符范围:0x20~0x7e。
比如:
符号 半角 全角 相差
# 0x0023 0xff03 0xfee0
? 0x003f 0xff1f 0xfee0
空格 0x0020 0x03000 0x2fe0
除了空格外,其他的字符中,全角与半角均相差:0xffe0
因此,在全角与半角的字符转换中,需要对空格特殊处理。
例如:
全角 = 半角 + 0xfee0
半角 = 全角 - 0xffe0