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 相关文章推荐
JS下高效拼装字符串的几种方法比较与测试代码
Apr 15 Javascript
通过location.replace禁止浏览器后退防止重复提交
Sep 04 Javascript
详解JavaScript中shift()方法的使用
Jun 09 Javascript
浅谈js中的三种继承方式及其优缺点
Aug 10 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
vue-loader教程介绍
Jun 14 Javascript
如何让你的JS代码更好看易读
Dec 01 Javascript
Angular2 父子组件通信方式的示例
Jan 29 Javascript
Vue 中的compile操作方法
Feb 26 Javascript
Vue2.0子同级组件之间数据交互方法
Feb 28 Javascript
Vue列表渲染的示例代码
Nov 01 Javascript
微信小程序激励式视频广告组件使用详解
Dec 06 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 xml实例 留言本
2009/03/20 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
JS版网站风格切换实例代码
2008/10/06 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
python sorted函数的小练习及解答
2019/09/18 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
销售部主管岗位职责
2013/12/18 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
明星邀请函
2015/02/02 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书