javascript实现全角与半角字符的转换


Posted in Javascript onJanuary 07, 2015

先上代码,再说废话^_^

/**

 * 转全角字符

 */

function toDBC(str){

    var result = "";

    var len = str.length;

    for(var i=0;i<len;i++)

    {

        var cCode = str.charCodeAt(i);

        //全角与半角相差(除空格外):65248(十进制)

        cCode = (cCode>=0x0021 && cCode<=0x007E)?(cCode + 65248) : 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<len;i++)

    {

        var cCode = str.charCodeAt(i);

        //全角与半角相差(除空格外):65248(十进制)

        cCode = (cCode>=0xFF01 && cCode<=0xFF5E)?(cCode - 65248) : 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

Javascript 相关文章推荐
JavaScript 和 Java 的区别浅析
Jul 31 Javascript
js判断子窗体是否关闭的方法
Aug 11 Javascript
JavaScript实现给按钮加上双重动作的方法
Aug 14 Javascript
JQuery核心函数是什么及使用方法介绍
May 03 Javascript
javascript中JSON.parse()与eval()解析json的区别
May 19 Javascript
Vue.js实战之组件之间的数据传递
Apr 01 Javascript
JS仿Base.js实现的继承示例
Apr 07 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
Jun 16 Javascript
JQuery元素快速查找与操作
Apr 22 jQuery
vue中js判断长时间不操作界面自动退出登录(推荐)
Jan 22 Javascript
js实现登录时记住密码的方法分析
Apr 05 Javascript
js实现微信聊天界面
Aug 09 Javascript
自己封装的常用javascript函数分享
Jan 07 #Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
Jan 07 #Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 #Javascript
jQuery中children()方法用法实例
Jan 07 #Javascript
angular.element方法汇总
Jan 07 #Javascript
jQuery中slice()方法用法实例
Jan 07 #Javascript
angularJS中$apply()方法详解
Jan 07 #Javascript
You might like
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
不使用 JS 匿名函数理由
2017/11/17 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
跟老齐学Python之折腾一下目录
2014/10/24 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
python属于哪种语言
2020/08/16 Python
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
.NET方向面试题
2014/11/20 面试题
应聘收银员个人的求职信
2013/11/30 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
标准毕业生自荐信
2014/06/24 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
教导处教学工作总结
2015/08/12 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书